Module Mlsem_types.TyExpr
type base = | TInt of Z.t option * Z.t option| TCharInt of char * char| TSString of string| TBool| TTrue| TFalse| TUnit| TChar| TAny| TEmpty| TNil| TString| TList| TFloat| TArrowAny| TTupleAny| TTupleN of int| TEnumAny| TTagAny| TRecordAny
type 'ext regexp = | Epsilon| Symbol of 'ext t| Union of 'ext regexp list| Concat of 'ext regexp list| Star of 'ext regexp| Plus of 'ext regexp| Option of 'ext regexp
and 'ext t = | TVar of kind * string| TRowVar of kind * string| TBase of base| TApp of string * 'ext t list| TEnum of string| TTag of string * 'ext t| TTuple of 'ext t list| TRecord of (string * 'ext t) list * 'ext t| TSList of 'ext regexp| TCons of 'ext t * 'ext t| TArrow of 'ext t * 'ext t| TOption of 'ext t| TCustom of string| TCup of 'ext t * 'ext t| TCap of 'ext t * 'ext t| TDiff of 'ext t * 'ext t| TNeg of 'ext t| TWhere of 'ext t * (string * string list * 'ext t) list| TRecUpd of 'ext t * (string * 'ext t) list| TRecProj of 'ext t * string| TExt of 'ext