//! Single-pass AST extraction of a [`FileIr`](crate::ir::facts::FileIr).
//!
//! The traversal is split by responsibility: `extractor` owns fact storage
//! and traversal context, `visitor` is the `syn` dispatch that drives it,
//! `fn_scope` classifies bindings inside the function body under traversal,
//! `sites` owns the authoritative definition and reference inventory, and
//! `site_visitor` turns syntax nodes into those sites. `imports` performs the
//! one `use`-tree walk, `use_paths` projects the flat capability path list from
//! the resulting sites, and `paths` renders ranges and path spellings.
//! `syn_helpers` holds the stateless AST queries the others share.
//! `fingerprint` and `enrich` are post-passes over the finished IR. `parse` is
//! the one route into the traversal, so every production parse is observed
//! wherever it was requested from.
pub use extract;
pub use compute_fingerprints;
pub use parse_source;
pub use ;