Error and Warning Catalog

Stable diagnostics are indexed by phase and code so callers can distinguish reader, normalization, runtime, warning, and resource outcomes.

Current guarantees

  • E300–E340 cover unbound names, application, arity, assignment, pair/range/type/numeric faults, value contexts, letrec, user errors, exception flow, and stale escapes.
  • E1xx belongs to reader/static normalization; W2xx/W3xx belongs to ordered warnings.
  • ResourceLimit is deliberately outside catchable E3xx and is reported as its own outcome.

Stable runtime codes

CodeConditionPhase / catchability
E300 / E303unbound read / set! of unbound nameruntime / catchable
E301 / E302non-procedure application / arity mismatchruntime / catchable
E310 / E311 / E312pair-list domain / range-index / primitive typeruntime / catchable
E313 / E314division by zero / non-finite productionruntime / catchable
E320 / E321value-count misuse / uninitialized letrec readruntime / catchable
E330 / E331 / E332user error / uncaught raise / non-continuable handler returnruntime / signal-specific
E340escape continuation no longer activeruntime / catchable fault after consumption
ResourceLimitdeclared recursion/resource ceilingresource / not catchable as E3xx

Boundaries

  • Codes are stable contracts only where the runtime SSOT pins them.