package dolmen
Usual definitions
type t = ty
The type of types.
type 'a tag = 'a Tag.t
A type for tags to attach to arbitrary types.
Raised when applying a type constant to the wrong number of arguments.
exception Prenex_polymorphism of t
Raised when the type provided is polymorphic, but occurred in a place where polymorphic types are forbidden by prenex/rank-1 polymorphism.
val hash : t -> int
A 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 : Stdlib.Format.formatter -> t -> unit
Printing function.
Alias management
View
type view = [
| `Prop
(*Propositions/booleans
*)| `Int
(*Integers
*)| `Rat
(*Rationals
*)| `Real
(*Reals
*)| `Array of ty * ty
(*Function arrays, from source to destination type.
*)| `Bitv of int
(*Bitvectors of fixed length.
*)| `Float of int * int
(*Floating points.
*)| `String
(*Strings
*)| `String_reg_lang
(*Regular languages over strings
*)| `Var of ty_var
(*Variables (excluding wildcards)
*)| `Wildcard of ty_var
(*Wildcards
*)| `App of [ `Generic of ty_cst | `Builtin of builtin ] * ty list
(*Generic applications.
*)| `Arrow of ty list * ty
| `Pi of ty_var list * ty
]
View on types.
val pi_arity : t -> int
Reutnrs the number of expected type arguments that the given type expects (i.e. the number of prenex polymorphic variables in the given type).
Type structure definition
One case of an algebraic datatype definition.
The various ways to define a type inside the solver.
Variables and constants
module Var : sig ... end
A module for variables that occur in types.
module Const : sig ... end
A module for constant symbols the occur in types.
val prop : t
The type of propositions
val bool : t
Alias for prop
.
val unit : t
The unit type.
val base : t
An arbitrary type.
val int : t
The type of integers
val rat : t
The type of rationals
val real : t
The type of reals.
val string : t
The type of strings
val string_reg_lang : t
The type of regular language over strings.
val bitv : int -> t
Bitvectors of a given length.
val float : int -> int -> t
Floating point of given exponent and significand.
val roundingMode : t
Type for the various Floating point rounding modes.
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.