Ship

Lexicon · Exception channel

Exception channel

The exception channel is the exn row embedded beside ret and eff in every function's Call. It is inferred by default when omitted in .shp. fn! seals totality (exn = []); .shc uses fn! or one-or-more explicit exn clauses. Repeated exact additions format as one row: a singleton named type is naked; tags and unions are bracketed.

Fallible expressions auto-propagate inside fallible functions — including HOF callbacks. Ordinary let bindings are plain success types; errors are not stored in values by default. Handling pauses in match and try.

maybe ?> error :missing is behavior-backed presence fallback, not a propagation operator. Its quoted fallback obligations join the caller's channel when the expanded expression is inserted and rechecked.

Produced via error :tag(...);, not return. No language-level Result ADT — see ../08-errors.md and ../decisions.md.