Expand description
One line for every name a blue program can call without a use.
The interpreter crate::interpreter builds binds 228 names a blue
call can spell (blue_lang_syntax::is_callable_name, measured 2026-09-29).
The reserved words among its bindings (if, fn, case, …) are described
with the keywords, and the kebab-case rest of tatara-lisp’s stdlib is
unreachable, because the lexer reads - as an operator. Most are installed by tatara-lisp, which records no description,
and the rest by this crate’s own layers. This table is where blue says what
each one does, in blue’s calling form: blue reference prints it and
docs/REFERENCE.md is rendered from it.
It cannot drift from the runtime. blue-lang-cli/tests/reference.rs
compares it with a live interpreter in both directions: a name the runtime
binds with no row here, a row naming nothing the runtime binds, and a
signature whose parameter count disagrees with the bound function’s arity
are each a red build. A new primitive therefore arrives with its line or
does not arrive.
Every line was checked against the runtime by running it, not read off a name. Where a builtin is partial or surprising the line says so, because that is what an author needs from it.
§Signatures
name(a, b) takes exactly two; name(a[, b]) takes one or two;
name(a, more...) takes one or more. A name that is not a function (a
special form, a macro, a constant) is written the way a blue program uses
it, and its arity is not checked.
Structs§
- NameDoc
- One bound name, described.
Enums§
- Topic
- What a name is for, so a reference can group it.
Constants§
- NAMES
- Every name the full interpreter binds that a blue identifier can spell.
Functions§
- doc_of
- The row for a name, if blue describes it.
- signatures