Skip to main content

Crate lex_types

Crate lex_types 

Source
Expand description

M3: type system, effect system. See spec §6, §7.

Re-exports§

pub use checker::check_and_rewrite_program;
pub use checker::check_program;
pub use checker::check_program_with_positions;
pub use checker::ProgramTypes;
pub use error::PositionedError;
pub use error::TypeError;
pub use position::byte_to_line_col;
pub use position::Position;
pub use rules::all_rules;
pub use rules::suggested_transform_for;
pub use rules::RuleInfo;
pub use trust::Dimension;
pub use trust::Grant;
pub use trust::GrantId;
pub use trust::Level;
pub use trust::TrustError;
pub use types::EffectSet;
pub use types::Prim;
pub use types::Scheme;
pub use types::Ty;
pub use types::TyVarId;

Modules§

builtins
Built-in module signatures used by §3.13 examples and beyond.
checker
M3: type checker. Walks the canonical AST, infers types via unification, and checks declared signatures and effects.
discharge
Static discharge of refinement-type predicates (#209 slice 2).
env
Type environment: type-decl info and value-binding scopes.
error
Structured type errors per spec §6.7.
position
Source positions attached to TypeErrors (#306 slice 1).
rules
Rule-tagged messages for type errors (#306 slice 2).
trust
Trust lattice: effect-narrowing as subtyping over a small fixed dimension set (filesystem, network, exec).
types
Internal type representation used by the inferencer/checker.
unifier
Union-find based unification for type variables.