Module Type


module Type: sig .. end


type t =
| Var of int
| Arrow of t * t
| TCons of Strng.t * t list
type env = (CoreML.t * t) St.t 
val var : int -> t
val arrow : t -> t -> t
val tcons : Strng.t -> t list -> t
val tcons' : string -> t list -> t
val bool : t
val int : t
val basic_env : (CoreML.t * t) St.t
val reduce_var_index : t -> t
val is_unifiable : (t * t) St.t -> bool
val check_type : (CoreML.t * t) St.t -> CoreML.t -> t -> bool
val is_typable : (CoreML.t * t) St.t -> CoreML.t -> bool
val infer_type : (CoreML.t * t) St.t -> CoreML.t -> t
val typep : t Parser.t
val to_strng : t -> Strng.t
val to_string : t -> string
val toplevel_printer : Format.formatter -> t -> unit