The Language

The whole language, one keyword at a time.

Program has only a handful of keywords; everything interesting comes from the modules, not the language. Here is every one, with a brief description and a link to its own page. An indented row is a sub-keyword that appears only inside the keyword above it.

Keywords

This is the full keyword list.

KeywordWhat it does
ROOTThe whole program: the top-level modules, native setup, and the run body that actually executes.
CALLA function called on its own line, without a keyword — a statement in any run or reverse body.
MODULEA named namespace; nests to any depth and holds a module's declarations.
FUNCTIONA forward, derived function: typed inputs, a body, and a return.
INPUTA typed parameter of a function; the BINDING modifier makes it two-way — read and written back.
HOLEA callback parameter: a gap the caller fills with a block.
NATIVEA per-target block of native host code — a function or type implementation, or setup that runs at the Root or a module's start.
TYPEA named type: a record of fields or a union of options.
FIELDA named, typed member of a record.
OPTIONOne variant of a union; reads back as an Optional.
LETBind a name to a derived value; it recomputes reactively.
STATEA reactive cell, the only place a value really changes; the LOCKED modifier marks it as maybe pending or carrying an error.
REVERSEA write-back block: what happens when a value is written.
SETPushes a value into outer state; the last line of a reverse.
WITHTemporarily swaps a module's implementation for another over an indented block.

Full syntax

The whole grammar — every keyword rule and the shared inner rules they draw on — now lives under Internals · Grammar, alongside how the parser reads it.