#![allow(clippy::implicit_hasher)]
pub mod acset;
pub mod adjunction;
pub mod attributes;
pub mod complement;
pub mod contraction;
pub mod edit_error;
pub mod element_ops;
pub mod error;
pub mod fan;
pub mod functor;
pub mod ginstance;
pub mod hom;
pub mod instance;
pub mod instance_env;
pub mod instance_hom;
pub mod metadata;
pub mod parse;
pub mod pi;
pub mod poly;
pub mod provenance;
pub mod query;
pub mod reachability;
pub mod table_edit;
pub mod tree_edit;
pub mod validate;
pub mod value;
pub mod wtype;
pub use acset::AcsetOps;
pub use adjunction::{
AdjunctionError, f_counit, f_delta, f_sigma, f_transpose_left, f_transpose_right, f_unit,
w_counit, w_delta, w_sigma, w_transpose_left, w_transpose_right, w_unit,
};
pub use attributes::{AttributeDecl, AttributeSchema, AttributeViolation};
pub use complement::Complement;
pub use contraction::{ContractionRecord, ContractionTracker};
pub use edit_error::EditError;
pub use element_ops::{ElementOps, decode_finstance_id, encode_finstance_id};
pub use error::{InstError, ParseError, RestrictError, ValidationError};
pub use fan::Fan;
pub use functor::{FInstance, functor_extend, functor_restrict};
pub use ginstance::{GInstance, graph_extend, graph_restrict};
pub use hom::{curry_migration, eval_hom, hom_schema};
pub use instance::Instance;
pub use instance_env::{eval_with_element_ops, eval_with_instance};
pub use instance_hom::{FInstanceHom, HomError, WInstanceHom};
pub use metadata::{Node, NodeShape};
pub use parse::{parse_json, to_json};
pub use pi::{functor_pi, wtype_pi};
pub use poly::{
SectionEnrichment, fiber_at_anchor, fiber_at_node, fiber_decomposition, fiber_with_predicate,
group_by, join, restrict_with_complement, section,
};
pub use provenance::{Provenance, ProvenanceMap, SourceField, TransformStep, compute_provenance};
pub use query::{
InstanceQuery, QueryMatch, build_node_env, execute as execute_query, execute_any,
execute_elements, execute_functor, execute_graph,
};
pub use reachability::ReachabilityIndex;
pub use table_edit::TableEdit;
pub use tree_edit::TreeEdit;
pub use validate::{validate_attributes, validate_wtype};
pub use value::{FieldPresence, Value};
pub use wtype::{
CaseBranch, CompiledMigration, FieldTransform, TermAssignment, TermBranch, TermScope,
TransformContext, WInstance, ancestor_contraction, anchor_surviving,
apply_term_assignments_to_row, build_env_from_extra_fields, build_env_with_children,
collect_child_values, collect_scalar_child_values, expr_literal_to_value,
extend_env_from_extra_fields, node_to_value, reconstruct_fans, referenced_names, resolve_edge,
value_to_expr_literal, wtype_extend, wtype_extend_partial, wtype_restrict,
};