mod admissible;
mod admissible_types;
mod associated;
mod assumed_collections;
mod binding;
mod borrowed_items;
mod boxed_payload;
mod boxes;
mod checked_program;
mod checker;
mod collection;
mod copy;
mod coverage;
mod declarations;
#[cfg(test)]
mod declarations_fixture;
mod declared_traits;
mod declared_types;
mod deferred_definitions;
mod derive_blockers;
mod derives;
mod display;
mod enums;
mod expectation;
mod finalize;
mod form_results;
mod graph;
mod impl_overlap;
mod infer;
mod literal_fit;
mod lowering;
mod main_result;
mod method_receivers;
mod missing_annotations;
mod opaque_positions;
mod parameter_call_labels;
mod parameter_call_search;
mod parameter_copy;
mod parameter_modes;
mod pattern_fields;
mod pattern_placement;
mod payload_position;
mod peeling;
mod pending;
mod pinning;
mod pipelines;
mod problems;
mod projection;
mod receiver_kind;
mod returned_values;
mod rust_types;
mod selection;
mod selfless_methods;
mod size;
mod string_view;
mod structs;
mod structural;
mod structural_trait;
mod structural_uses;
mod template_clauses;
mod templates;
mod trait_declarations;
mod trait_method_info;
mod traits;
mod ty;
mod type_declarations;
mod type_text;
mod type_text_writer;
mod typed;
mod typed_associated_type;
mod typed_impl_method;
#[cfg(test)]
mod typed_source;
mod typed_trait;
mod typed_trait_impl;
mod typed_trait_method;
mod unification;
mod unifier;
mod variant_payloads;
mod view_coercion;
mod walk;
mod wrapper;
pub use crate::core::ClosureKind;
pub use binding::GenericBinding;
pub use boxed_payload::BoxedPayload;
pub use checker::TypeChecker;
pub use collection::{Collection, CollectionKind};
pub use copy::{CopyRules, InferredCopies};
pub use display::TypeDisplay;
pub use enums::{EnumDefinition, EnumTable, VariantDefinition, VariantPayload};
pub use form_results::{FormResult, FormResults};
pub use graph::DefinitionGraph;
pub use main_result::MainResult;
pub use parameter_copy::ParameterCopy;
pub use parameter_modes::{ParamMode, ParameterModes};
pub use payload_position::PayloadPosition;
pub use pinning::{InstantiationReport, LiteralDefaults, Pinning};
pub use pipelines::Pipelines;
pub use projection::{AssociatedType, ProjectionTable};
pub use receiver_kind::ReceiverKind;
pub use returned_values::ReturnedValues;
pub use rust_types::{RustType, RustTypeTable};
pub use structs::{StructDefinition, StructTable};
pub use structural_trait::StructuralTrait;
pub use structural_uses::{StructuralUse, StructuralUses};
pub use template_clauses::TemplateClauses;
pub use templates::TemplateBorrows;
pub use trait_method_info::TraitMethodInfo;
pub use traits::{Implementor, RustTrait, TraitTable};
pub use ty::{Bound, GenericId, GenericParam, Lifetime, Scheme, Type, TypeVar};
pub use typed::{
Borrow, ClosureType, FieldOrder, FieldPlace, PendingModeCheck, TypedArgument, TypedArm,
TypedBinder, TypedBlock, TypedBodyItem, TypedControl, TypedConversion, TypedDefinition,
TypedExpr, TypedExprKind, TypedLambda, TypedLeaf, TypedMatch, TypedModule, TypedPattern,
TypedPatternKind, TypedProgram, TypedStructExpr,
};
pub use typed_associated_type::TypedAssociatedType;
pub use typed_impl_method::TypedImplMethod;
#[cfg(test)]
pub use typed_source::TypedSource;
pub use typed_trait::TypedTrait;
pub use typed_trait_impl::TypedTraitImpl;
pub use typed_trait_method::TypedTraitMethod;
pub use view_coercion::ViewCoercion;
pub use wrapper::{FunctionValueWrapper, PreparedFunctionValue};