Skip to main content

sim_lib_binding/
lib.rs

1#![forbid(unsafe_code)]
2#![deny(missing_docs)]
3//! Binding behavior for the SIM runtime: lexical, dynamic, and scoped binding.
4//!
5//! The kernel defines the binding-related contracts; this crate supplies the
6//! concrete binding organ (lexical/letrec scopes, dynamic parameters, modes).
7
8mod claims;
9mod dynamic;
10mod lexical;
11mod modes;
12
13/// Cookbook recipes for the binding organ, embedded at build time.
14pub static RECIPES: sim_cookbook::EmbeddedDir =
15    include!(concat!(env!("OUT_DIR"), "/cookbook_recipes.rs"));
16
17pub use claims::{
18    binding_dynamic_let_op_key, binding_let_op_key, binding_let_star_op_key, binding_letrec_op_key,
19    binding_op_keys, binding_organ_symbol, binding_parameterize_op_key,
20    binding_profile_modes_op_key, publish_binding_organ_claims,
21    publish_binding_organ_claims_for_lib,
22};
23pub use dynamic::{DynamicEnv, Parameter};
24pub use lexical::{
25    BindingInitializer, LexicalEnv, LexicalFunction, eval_let, eval_let_star, eval_letrec,
26    lexical_function_value,
27};
28pub use modes::{BindingProfileModes, BindingScopeMode, HygieneMode};
29
30#[cfg(test)]
31mod tests;