Module Mlsem_app.Main

module MVariable = Mlsem_lang.MVariable
module NameMap : Stdlib.Map.S with type key = string
type message = Mlsem_system.Analyzer.severity * Mlsem_common.Position.t * string * string option
type inferred = {
  1. var : Mlsem_common.Variable.t;
  2. ty : Mlsem_types.TyScheme.t;
  3. sigs : Signature.t;
  4. declared : bool;
}
type result =
  1. | TSuccess of inferred list * float
  2. | TDone
  3. | TFailure of Mlsem_common.Variable.t option * Mlsem_common.Position.t * string * string option * float
type output = {
  1. res : result;
  2. msg : message list;
}
val treat_all_sigs : envs -> ('a Mlsem_common.Position.located * PAst.element) list -> envs * output
val initial_envs : envs
val initial_senv : Signature.t Mlsem_common.VarMap.t
val initial_benv : Mlsem_types.Builder.benv
val initial_penv : Mlsem_types.PEnv.t
val display : envs -> Mlsem_types.TyScheme.t -> string
val signature : envs -> Signature.t -> string list
val build_type : envs -> string -> Mlsem_types.Ty.t
val user_type_names : envs -> string list
type parsing_result =
  1. | PSuccess of PAst.program
  2. | PFailure of Mlsem_common.Position.t * string
val parse : [< `File of string | `String of string ] -> parsing_result