effx
Concepts

Concepts

The vocabulary of effx. IR, StableId, semantic hash, emit modes and targets, external bindings and schema references.

These pages define the terms used across the docs. Each page names the source files it was written from.

How the concepts fit

 annotations ──interpret──▶ IR ──normalize──▶ canonical JSON ──sha-256──▶ semanticHash
 (SchemaRef,                 │                  (ir.json)
  SymbolRef inside)          │ toGraph
                             ▼
                        GraphIndex ──▶ analyses ──▶ diagnostics
                             │
                             ▼
 GenerationContext ──────▶ generators ──▶ files
 (target, emit)              (policy lives here, never in the IR)

Index

ConceptOne linePage
IRA Schema-defined graph of nodes and edges. The durable data model.The IR
StableId<kind>:<name>. The identity of every node.StableId
Semantic hashsha-256 of the canonical JSON of the normalized IR.Semantic hash
Emit mode, target profileOutput policy: which files and which Effect import paths. Not in the IR.Emit modes and targets
External bindingA declaration-only operation whose handler the application provides.External bindings
SchemaRef, SymbolRefSchemas and symbols kept by reference, never serialized.Schema refs

Terms used across pages

TermMeaningDefined in
Annotation{ name, args }. Both decorators and builder chains lower to it.packages/compiler/src/Collected.ts
DeclarationA collected source item: id, kind, module, export, annotations, location.packages/compiler/src/Collected.ts
ContributionThe nodes, edges and diagnostics one annotation adds.packages/compiler/src/Extension.ts
ExtensionA named bundle of interpreters, analyses and generators.Extensions
DiagnosticA plain-data report with a code, severity and optional location.Diagnostics
Manifest.effx/manifest.json. Locations, versions, file list and diagnostics.effx build

Rules that hold everywhere

RuleReference
The IR is semantics only. No ts.* objects, no source locations, no output policy.The invariant
Graph, Trie and HashMap are working indexes. They are never serialized.The IR
Diagnostics are data. A failing check is a diagnostic, not an exception.Diagnostics

On this page