Skip to main content

sim_kernel/
eval.rs

1//! Evaluation policy and the macro-expander contract.
2//!
3//! The kernel defines the eval-policy, demand, thunk, and macro-expander
4//! contracts plus the [`EvalFabric`] surface for location-transparent eval;
5//! libraries supply the concrete evaluation and expansion strategies.
6
7mod demand;
8mod policy;
9mod protocol;
10mod runtime;
11mod strict;
12mod thunk;
13
14pub use demand::{Demand, PreparedArgs};
15pub use policy::{
16    EagerPolicy, EvalPolicy, EvalPolicyRef, HybridPolicy, LazyPolicy, NeedPolicy, NoopEvalPolicy,
17    StrictByShapePolicy,
18};
19pub use protocol::{
20    Consistency, EvalFabric, EvalFabricRef, EvalMode, EvalReply, EvalRequest, MacroExpander,
21    MacroExpanderRef, Phase,
22};
23pub use runtime::{eval_expr_default, force_default};
24pub use strict::StrictNames;
25pub use thunk::{LazyThunkObject, Thunk, ThunkObject};
26
27#[cfg(test)]
28mod tests;