#![allow(clippy::implicit_hasher)]
pub mod acset;
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 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 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 metadata::Node;
pub use parse::{parse_json, to_json};
pub use pi::{functor_pi, wtype_pi};
pub use poly::{
Complement, DroppedNode, 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_wtype;
pub use value::{FieldPresence, Value};
pub use wtype::{
CaseBranch, CompiledMigration, FieldTransform, WInstance, ancestor_contraction,
anchor_surviving, build_env_from_extra_fields, build_env_with_children,
collect_scalar_child_values, expr_literal_to_value, reconstruct_fans, resolve_edge,
value_to_expr_literal, wtype_extend, wtype_restrict,
};