Module Inf.Type


module Type: sig .. end
Module that conataints the types

type t 
Types and type variables
type tau 
Types without type variables
type lenv 
Location environment or local envrionment variable (LEVar)
type r 
object type or object type variable (OTVar)
type phi 
location set or location set variable (LSVar)
type q 
Precise information of precise variable (PreVar)

Methods to create values



Types


val t_top : t
val t_undef : t
val t_int : t
val create_t_obj : q -> phi -> t
val create_t_fun : Inf.Vars.LEVar.t ->
t ->
t -> phi -> Inf.Vars.LEVar.t -> t -> t
val create_t_tv : Inf.Vars.TVar.t -> t

Local Environment


val empty_lenv : lenv
val add_to_lenv : lenv -> Location.Loc.t -> r -> lenv
val union_lenv : lenv -> lenv -> lenv
val create_lenv_levar : Inf.levar -> lenv

Object Types


val empty_obj : r
val add_to_obj : r -> Syntax.label -> Inf.Vars.TVar.t -> r
val create_r_otv : Inf.Vars.OTVar.t -> r

Locations


val create_phi_ls : Location.LSet.t -> phi
val create_phi_lsvar : Inf.Vars.LSVar.t -> phi

Precise Informations


val q_in : q
val q_ex : q
val create_q_pv : Inf.Vars.PrVar.t -> q

output


val string_of : t -> string
val string_of_p : q * phi -> string
val string_of_lenv : lenv -> string
val string_of_r : r -> string
val string_of_phi : phi -> string
val string_of_q : q -> string