Skip to main content

Module eval

Module eval 

Source
Expand description

Evaluation policy and the macro-expander contract.

The kernel defines the eval-policy, demand, thunk, and macro-expander contracts plus the EvalFabric surface for location-transparent eval; libraries supply the concrete evaluation and expansion strategies.

Structs§

EagerPolicy
A policy that fully evaluates every argument before the call.
EvalReply
The answer returned by an EvalFabric for an EvalRequest.
EvalRequest
A request submitted to an EvalFabric for location-transparent eval.
HybridPolicy
A policy that mixes eager and quoted arguments by their Demand.
LazyPolicy
A policy that wraps every argument in a re-forcing lazy thunk.
LazyThunkObject
A non-memoizing thunk that re-evaluates its expression on every force.
NeedPolicy
A call-by-need policy: arguments are thunked and forced at most once.
NoopEvalPolicy
A policy that quotes every argument and refuses to evaluate expressions.
PreparedArgs
A positional tuple of prepared call arguments.
StrictByShapePolicy
A policy that forces or defers each argument by its Demand.
StrictNames
Wraps any EvalPolicy so unbound names fail with precise errors.
ThunkObject
A memoizing call-by-need thunk: evaluated at most once, then cached.

Enums§

Consistency
Where a realize request may be answered from.
Demand
How strongly an argument position demands its value be forced.
EvalMode
Which evaluation discipline a request runs under.
Phase
A stage in the pipeline at which macro expansion may run.

Traits§

EvalFabric
The location-transparent distributed eval contract.
EvalPolicy
The eval-policy contract: how a call site evaluates its arguments and body.
MacroExpander
The macro-expander contract: rewrite an Expr in a given Phase.
Thunk
A delayed computation that produces a value when forced.

Functions§

eval_expr_default
Evaluates expr to a value using the kernel’s default tree-walk.
force_default
Forces value to satisfy demand using the kernel’s default rules.

Type Aliases§

EvalFabricRef
A shared, reference-counted handle to an EvalFabric.
EvalPolicyRef
A shared, reference-counted handle to an EvalPolicy.
MacroExpanderRef
A shared, reference-counted handle to a MacroExpander.