Skip to main content

Module docs

Module docs 

Source
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