stories/foundations.md |
spec/foundations.md — the bets behind captured intent, staged compilation, casing-determines-kind, strictness-as-performance, and the collapse of value/reference into one # axis |
stories/lexical.md |
spec/lexical.md — casing as a hard-error kind signal and the <> disambiguation it buys, why field privacy lives in the name and reaches across packages, and a delimiter for each kind of separated thing |
stories/types.md |
spec/types.md — the two-axis value/reference model, why # marks a distinct type rather than a box, constructing a type by what it is, confining # to the body forms, why every type must be named, dropping the tuple mould once a named struct does the job better, adding named (dart-style) constructors on the syntax variants introduced, and naming the enum's shape the peer mould |
stories/adt.md |
spec/adt.md — splitting enum from variant against the hype, the shared struct body, escaping the matcher machine with case overloads and the turn to a central match block, matching variants rather than patterns, keeping enum data outside the members, reducing a match group to sugar for one arm per case, and building a variant by naming a case rather than calling a constructor |
stories/generics.md |
spec/generics.md — the parameter model, the <>/() split, size-in-the-type, and the deferred features |
stories/dependencies.md |
spec/dependencies.md — URL identity, the manifest/resolution split, prebuilt distribution, symbol-rewriting, the browsable global cache, the package-graph acyclicity rule, and the opt-in remapping model |
stories/memory.md |
spec/memory.md — the no-GC-no-lifetimes goal, the move problem and the anchor, lazy backpointer creation, the indexed heap table, the rooted-guest rules and the host/guest terminology split, the collapse to one value/reference axis with a borrowed receiver, and the shift to segmented chunked bump arenas |
stories/lifetimes.md |
spec/lifetimes.md — lexical scope in place of a borrow checker, what may be moved, the declaration-block rule that kills flow analysis, downgrade instead of use-after-move, parameter-rooted returned guests, and why each strict rule is the minimal guard against one specific memory corruption |
stories/effects.md |
spec/effects.md — inferring effects instead of annotating them, receiver-scoped mut, capabilities in place of ambient I/O, the four-level ladder and the Total-Pure/Pure split, what deliberately is not an effect, and mutation through a borrowed receiver |
stories/concurrency.md |
spec/concurrency.md — the parallelism/concurrency split and the refusal of async coloring, why spawn marks only a call, water-tower lifetimes, signature-based safety without locks, and value-typed mutation closing the aliased-write gap |
stories/error-handling.md |
spec/error-handling.md — the two-doors model and why failure is control flow rather than a Result value, resolve as expression-substitution rather than assignment, typed abort paths and the deliberately-absent propagate operator, and keeping abortability orthogonal to effects |
stories/control-flow.md |
spec/control-flow.md — guard as an active exit that opens no scope of its own, doing without while behind a written loop bound, and one-based counting after the loop that forced the question |
stories/functions.md |
spec/functions.md — pulling methods out of the type body and the verb model that revealed, mutation made visible with :/!, overloading on parameter shape alone, and why callables are call-only while self-typed lambdas are values |
stories/operators.md |
spec/operators.md — the fixed vocabulary worth overloading, ~ as the universal flip, laws enforced through derived operators, grammar-only grouping, and home-package coherence |
stories/packages.md |
spec/packages.md — the directory as namespace and compilation unit, declarations as move checks, explicit qualified access through $, and keeping mutable state inside values so the effect model can see it |