Error and Warning Catalog

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

This page describes v1.13. Verify whether it is the current manual at /version.json

How to reason about it

  • 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
W330deprecated % call; prefer moduloruntime warning / once per source call site
W331deprecated list-first or list-rest call; prefer first or restruntime warning / once per source call site
ResourceLimitdeclared recursion/resource ceilingresource / not catchable as E3xx

A common mistake

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

Keep going

Use this page while writing code. For a guided explanation, return to the syntax map or the corresponding manual.

Syntax at a Glance · Learning Path