// === Public API ===

// The value module is fully public - it's the output of evaluation
pub mod value;

// Core evaluation functions
pub use eval::evaluator::eval;
pub use reverse_eval::reverse::reverse_eval;

// Supporting types needed to call the functions above
pub use eval::environment::Environment;
pub use eval::error::EvalError;
pub use eval::timestamp::{next_truncation_boundary, truncate_timestamp};
pub use reverse_eval::domain::Constraint;

// === Internal modules ===
mod ast_from_value;
mod defs;
mod eval;
mod registry;
mod reverse_eval;
mod sql_from_value;
