Mlsem_system.Asttype pcustom = {pname : string;pdom : Mlsem_types.Ty.t -> Mlsem_types.Ty.t;proj : Mlsem_types.Ty.t -> Mlsem_types.Ty.t;pgen : bool;}type ccustom = {cname : string;cdom : Mlsem_types.Ty.t -> Mlsem_types.Ty.t list list;cons : Mlsem_types.Ty.t list -> Mlsem_types.Ty.t;cgen : bool;}type projection = | Pi of int * int| PiField of string| PiFieldOpt of string| Hd| Tl| PiTag of Mlsem_types.Tag.t| PCustom of pcustomtype constructor = | Tuple of int| Cons| Rec of string list * bool| Tag of Mlsem_types.Tag.t| Enum of Mlsem_types.Enum.t| Join of int| Meet of int| Ternary of Mlsem_types.Ty.t| Voidify of Mlsem_types.Ty.t| Normalize| CCustom of ccustomtype operation = | RecUpd of string| RecDel of string| Ignore of Mlsem_types.Ty.t| OCustom of ocustomtype alt_settings = {aname : string;amask : Mlsem_common.Env.t -> bool list;aerror : Mlsem_common.Env.t -> string;}type param_annot = Mlsem_types.GTy.t optiontype e = | Value of Mlsem_types.GTy.t| Var of Mlsem_common.Variable.t| Constructor of constructor * t list| Lambda of param_annot * Mlsem_common.Variable.t * t| LambdaRec of (param_annot * Mlsem_common.Variable.t * t) list| Ite of t * Mlsem_types.GTy.t * t * t| App of t * t| Operation of operation * t| Projection of projection * t| Let of Mlsem_types.Ty.t list * Mlsem_common.Variable.t * t * t| TypeCast of t * Mlsem_types.GTy.t * check| TypeCoerce of t * Mlsem_types.GTy.t * check| Alt of alt_settings * t listand t = Mlsem_common.Eid.t * eval fv : t -> Mlsem_common.VarSet.tval vars : t -> Mlsem_common.VarSet.tval pp_raw : Stdlib.Format.formatter -> t -> unitval pp : Stdlib.Format.formatter -> t -> unitval pp_e : Stdlib.Format.formatter -> e -> unitval pp_check : Stdlib.Format.formatter -> check -> unitval pp_projection : Stdlib.Format.formatter -> projection -> unitval pp_constructor : Stdlib.Format.formatter -> constructor -> unitval pp_operation : Stdlib.Format.formatter -> operation -> unitval pp_alt_settings : Stdlib.Format.formatter -> alt_settings -> unitval pp_param_annot : Stdlib.Format.formatter -> param_annot -> unitval pp_pcustom : Stdlib.Format.formatter -> pcustom -> unitval pp_ccustom : Stdlib.Format.formatter -> ccustom -> unitval domain_of_proj : projection -> Mlsem_types.Ty.t -> Mlsem_types.Ty.tval proj : projection -> Mlsem_types.Ty.t -> Mlsem_types.Ty.tval domains_of_construct :
constructor ->
Mlsem_types.Ty.t ->
Mlsem_types.Ty.t list listval construct : constructor -> Mlsem_types.Ty.t list -> Mlsem_types.Ty.tval fun_of_operation :
Mlsem_common.Env.t ->
operation ->
Mlsem_types.TyScheme.tval coerce :
?coercion_id:Mlsem_common.Eid.t ->
check ->
Mlsem_types.GTy.t ->
t ->
t