Expr.Tytype t = tyThe type of types.
type 'a tag = 'a Tag.tA type for tags to attach to arbitrary types.
Raised when applying a type constant to the wrong number of arguments.
exception Prenex_polymorphism of tRaised when the type provided is polymorphic, but occurred in a place where polymorphic types are forbidden by prenex/rank-1 polymorphism.
val hash : t -> intA hash function for types, should be suitable to create hashtables.
An equality function on types. Should be compatible with the hash function.
Comparison function over types. Should be compativle with the equality function.
val print : Format.formatter -> t -> unitPrinting function.
type view = [ | `PropPropositions/booleans
*)| `IntIntegers
*)| `RatRationals
*)| `RealReals
*)| `Array of ty * tyFunction arrays, from source to destination type.
*)| `Bitv of intBitvectors of fixed length.
*)| `Float of int * intFloating points.
*)| `StringStrings
*)| `String_reg_langRegular languages over strings
*)| `Var of ty_varVariables (excluding wildcards)
*)| `Wildcard of ty_varWildcards
*)| `App of [ `Generic of ty_cst | `Builtin of builtin ] * ty listGeneric applications.
*)| `Arrow of ty list * ty| `Pi of ty_var list * ty ]View on types.
val pi_arity : t -> intReturns the number of expected type arguments that the given type expects (i.e. the number of prenex polymorphic variables in the given type).
type def = ty_defAlias for type definitions.
module Var : sig ... endA module for variables that occur in types.
module Const : sig ... endA module for constant symbols the occur in types.
val prop : tThe type of propositions
val bool : tAlias for prop.
val unit : tThe unit type.
val base : tAn arbitrary type.
val int : tThe type of integers
val rat : tThe type of rationals
val real : tThe type of reals.
val string : tThe type of strings
val string_reg_lang : tThe type of regular language over strings.
val bitv : int -> tBitvectors of a given length.
val float : int -> int -> tFloating point of given exponent and significand.
val roundingMode : tType for the various Floating point rounding modes.
Try and pattern mathc a list of patterns agains a list of types.
instance_of poly t decides whether t is an instance of poly, that is whether there are some types l such that a term of type poly applied to type arguments l gives a term of type t.
Tag for hooks called upon the wildcard instantiation.
Get the list of values bound to a list tag, returning the empty list if no value is bound.
Optionally bind an additional value to a list tag.
Bind a list of additional values to a list tag.