Skip to main content

Module value

Module value 

Source
Expand description

Value — runtime values produced by the interpreter.

Layered carefully so a future arena-backed representation can replace the Arc<...> inner pointers without changing the public API. Today: ergonomic reference-counted variants; tomorrow: &'arena Value allocated from bumpalo::Bump held by tatara-terreiro.

Structs§

Builtin
Lambda
A user-defined closure — captures its lexical environment.
Thunk
A deferred computation. Forced once; result cached. Enables Nix-style non-strict evaluation: (let ((x big-compute)) small) skips big-compute unless something forces x.

Enums§

Arity
ThunkState
Value
Every runtime value flows through this enum. Variants match a Nix-ish ontology (atoms, lists, attrsets, functions, thunks, paths, derivations) so the Lisp surface can carry Nix’s academic semantics verbatim.

Type Aliases§

BuiltinFn
A native builtin. Takes already-evaluated args + current env + interpreter handle so it can evaluate Sexp if it needs to (for short-circuit forms, the interpreter uses special-form dispatch instead).