Mlsem_systemmodule Analyzer : sig ... endmodule Annot : sig ... endTyping derivations, in the two forms the reconstruction works with.
module Ast : sig ... endThe functional core language.
module Checker : sig ... endType checker for the functional core language.
module Config : sig ... endTuning knobs of the type system.
module Heuristics : sig ... endDefault implementations for the normalization hooks of Mlsem_system.Config. Both encode the same assumption about abstract types: an abstract type with an empty parameter is uninhabited (there is no value of type ref(empty), say). This is not a neutral simplification — it is only sound for abstract types whose parameters are genuinely inhabited-by-construction.
module Reconstruction : sig ... endReconstruction of typing derivations.
module Refinement : sig ... endOccurrence typing: computing what a test tells us about the variables in scope.