engine
Foundation types for every pluggable engine: Term, Model, and the arena view.
What it is
The substrate every other engine-* crate builds on. It defines the Term algebra used to express eval schemes, the Model trait an engine implements, and a minimal, object-safe arena view (AstRef / AstNode / LanguageView) that lets a model inspect an AST without depending on handl-language — which would be a dependency cycle, since handl-language already depends on hnl-engine for Term.
Modules
term—Term,ArrSource,Side,RewriteWitness, handler eliminationterm_data—TermData— the owned, inspectable form of a termterm_interpreter—interpret— the generic scheme interpreternbe— normalization-by-evaluation helpers shared by the typecheckers
Start here
- Reference — public API
- How-to — task recipes
- Explanation — design and rationale
No tutorials: this repo is a building block used from Rust. End-to-end walkthroughs live with the product that composes it — see the Handl platform.