Book
Leaders
Why statement leaders exist, and how to read a line at a glance.
Leaders at statement start
Statement leaders carry control and binding. The words on the rest of the line stay free for domain names: nothing is reserved for if, for, or return. You learn a small glyph set once. Structure always begins at column zero of the statement.
How to read a line
The first non-space character is the leader, or you are inside an expression. A space follows the leader (except bare < / >). { opens on that same line. A glyph mid-expression is an operator; statement start decides leadership.
Table
~ name = expr ; mutable bind / reassign
$ name = expr ; immutable bind
# NAME = expr ; compile-time const (SCREAMING_SNAKE)
% struct_name { } ; struct shape
@ struct_name { } ; extra members (other files ok)
? expr { } ; if
: expr { } ; else-if
: { } ; else / match default
! expr ; return err (result)
^ expr ; return
* { } ; loop
* item : items { }; for-in
< ; break
> ; continue
| expr { arms } ; match
+ call(args) ; spawn task
- handle ; join task
/ path ; import
\ name ; exportDual-use glyphs
Some characters are leaders only at statement start and operators in expressions. + and - schedule or join at statement start and do arithmetic in expressions. * multiplies. / divides. ! is prefix not. < / > compare. The same rule covers % and |. Position decides the role.