mod check_model;
mod colimit;
mod eq;
mod error;
mod factorize;
mod free_model;
mod ident;
mod model;
mod morphism;
mod nat_transform;
mod op;
mod pullback;
mod quotient;
mod schema_functor;
mod sort;
mod theory;
mod typecheck;
pub use check_model::{
CheckModelOptions, EquationViolation, check_model, check_model_with_options,
};
pub use colimit::colimit;
pub use factorize::{Factorization, factorize, validate_factorization};
pub use eq::{Equation, Term};
pub use error::GatError;
pub use free_model::{FreeModelConfig, free_model};
pub use ident::{Ident, Name, NameSite, ScopeTag, SiteRename};
pub use model::{Model, ModelValue, migrate_model};
pub use morphism::{TheoryMorphism, check_morphism};
pub use nat_transform::{
NaturalTransformation, check_natural_transformation, horizontal_compose, vertical_compose,
};
pub use op::Operation;
pub use pullback::{PullbackResult, pullback};
pub use quotient::quotient;
pub use schema_functor::{TheoryConstraint, TheoryEndofunctor, TheoryTransform};
pub use sort::{Sort, SortParam};
pub use theory::{Theory, resolve_theory};
pub use typecheck::{
VarContext, infer_var_sorts, typecheck_equation, typecheck_term, typecheck_theory,
};