sig
type t
type tau
type lenv
type r
type phi
type q
val t_top : Inf.Type.t
val t_undef : Inf.Type.t
val t_int : Inf.Type.t
val create_t_obj : Inf.Type.q -> Inf.Type.phi -> Inf.Type.t
val create_t_fun :
Inf.Vars.LEVar.t ->
Inf.Type.t ->
Inf.Type.t ->
Inf.Type.phi -> Inf.Vars.LEVar.t -> Inf.Type.t -> Inf.Type.t
val create_t_tv : Inf.Vars.TVar.t -> Inf.Type.t
val empty_lenv : Inf.Type.lenv
val add_to_lenv :
Inf.Type.lenv -> Location.Loc.t -> Inf.Type.r -> Inf.Type.lenv
val union_lenv : Inf.Type.lenv -> Inf.Type.lenv -> Inf.Type.lenv
val create_lenv_levar : Inf.levar -> Inf.Type.lenv
val empty_obj : Inf.Type.r
val add_to_obj :
Inf.Type.r -> Syntax.label -> Inf.Vars.TVar.t -> Inf.Type.r
val create_r_otv : Inf.Vars.OTVar.t -> Inf.Type.r
val create_phi_ls : Location.LSet.t -> Inf.Type.phi
val create_phi_lsvar : Inf.Vars.LSVar.t -> Inf.Type.phi
val q_in : Inf.Type.q
val q_ex : Inf.Type.q
val create_q_pv : Inf.Vars.PrVar.t -> Inf.Type.q
val string_of : Inf.Type.t -> string
val string_of_p : Inf.Type.q * Inf.Type.phi -> string
val string_of_lenv : Inf.Type.lenv -> string
val string_of_r : Inf.Type.r -> string
val string_of_phi : Inf.Type.phi -> string
val string_of_q : Inf.Type.q -> string
end