children[0] is the bind target object (the "self" value), children[1] is the method
represents the end-of-file marker for tokenization, or the end of a read stream, or the end of an iterable
triple (parent or nil, vars, patterns); patterns is list of (pattern, when, implementation)
closed-over lambda function or macro, children[0] is the call signature, children[1] is the body
implicit block, value=env, children[0] is the body
an alphanumeric symbol, such as x, hello, or _QWE_RTY_123
javascript function or macro, children is empty, value is the native function details
the empty value
an operator character (only ever one character)
name, type, default; value=lazy
pattern program in data, child nodes are just for reconstruction
a symbol composed entirely of whitespace and/or comments. Newlines get their own Thing.
represents a function call, children[0] is the function, children[1:] are the arguments