Module Mlsem_types

module PrinterCfg : sig ... end
module PEnv : sig ... end

Printing environment: the type aliases to fold back when printing a type, so that a type built from type list('a) = … prints as list(int) rather than as its expansion.

module Ty : sig ... end
module FTy : sig ... end
module Enum : sig ... end
module Tag : sig ... end
module Abstract : sig ... end

Abstract types: opaque parameterized type constructors, such as ref('a), whose parameters are invariant.

module Tuple : sig ... end
module Lst : sig ... end
module Record : sig ... end
module Arrow : sig ... end
module Recording : sig ... end

Capture of the tallying instances solved during type-checking, for benchmarking the constraint solver outside of MLsem. Recording is a global on/off switch and the log a global accumulator.

module TVar : sig ... end
module TVarSet : sig ... end
module RVar : sig ... end
module RVarSet : sig ... end
module MVarSet = MVarSet
type kind =
  1. | KNoInfer
  2. | KInfer
  3. | KTemporary
module Row = Row
module Subst = Subst
module FieldCtx : sig ... end

Decorrelation of row variables.

module TVOp : sig ... end
module GTy : sig ... end

Gradual types.

module TyScheme : sig ... end

Type schemes: a gradual type together with the variables it quantifies universally. The other variables of the type are free, i.e. monomorphic.

include module type of struct include Builder end
module TyExpr : sig ... end
module Builder : sig ... end