extern crate self as tatara_lisp;
pub mod ast;
pub mod compile;
pub mod compiler_spec;
pub mod diagnostic;
pub mod domain;
pub mod env;
pub mod error;
pub mod macro_expand;
pub mod reader;
pub mod span;
pub mod spanned;
pub mod spanned_expand;
pub use compiler_spec::{
load_from_disk, realize_in_memory, realize_to_disk, CompilerSpec, RealizedCompiler,
};
pub use domain::{
assert_tatara_domain_well_formed, AttestHandler, AttestableDomain, ComplianceHandler,
CompliantDomain, DependentDomain, DepsHandler, DocHandler, DocumentedDomain, DomainHandler,
HelpDomain, HelpHandler, KeywordCollision, KeywordSexp, LifecycleHandler, LifecycleProtocol,
ObservabilityHandler, ObservableDomain, RenderHandler, RenderableDomain, RolloutStrategy,
SchemaHandler, SchematicDomain, StabilityHandler, StableDomain, TataraDomain, ValidateHandler,
ValidatedDomain,
};
pub use tatara_lisp_derive::{
KeywordSexp as DeriveKeywordSexp, TataraDomain as DeriveTataraDomain,
};
pub use ast::{Atom, AtomKind, QuoteForm, Sexp, UnknownAtomKind, UnknownQuoteForm};
pub use compile::{compile_named, compile_named_from_forms, compile_typed, NamedDefinition};
pub use diagnostic::{caret_run, format_diagnostic, line_at, line_col, span_width_chars, LineCol};
pub use env::Env;
pub use error::{
CompilerSpecIoStage, ExpectedKwargShape, KwargPath, KwargPathKind, LispError, MacroDefHead,
OptionalParamMalformedReason, Result, SexpShape, SexpWitness, StructuralKind,
TemplateInvariantKind, UnknownCompilerSpecIoStage, UnknownExpectedKwargShape,
UnknownKwargPathKind, UnknownMacroDefHead, UnknownSexpShape, UnknownStructuralKind,
UnknownUnquoteForm, UnquoteForm,
};
pub use macro_expand::{
Expander, MacroArgCarrier, MacroDef, MacroParams, OptionalParam, ResourceLimits,
DEFAULT_RESOURCE_LIMITS, UNBOUNDED_RESOURCE_LIMITS,
};
pub use reader::{read, read_spanned};
pub use span::Span;
pub use spanned::{Spanned, SpannedForm};
pub use spanned_expand::SpannedExpander;