package dolmen

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

A module for constant symbols the occur in types.

type t = ty_cst

The type of constant symbols the can occur in types

val print : Format.formatter -> t -> unit

Printer.

val hash : t -> int

A hash function for type constants, should be suitable to create hashtables.

val equal : t -> t -> bool

An equality function on type constants. Should be compatible with the hash function.

val compare : t -> t -> int

Comparison function on variables.

val arity : t -> int

Return the arity of the given symbol.

val mk : Path.t -> int -> t

Create a type constant with the given arity.

val get_tag : t -> 'a Tag.t -> 'a option

Get the value bound to a tag.

val get_tag_list : t -> 'a list Tag.t -> 'a list

Get the list of values bound to a list tag, returning the empty list if no value is bound.

val get_tag_last : t -> 'a list Tag.t -> 'a option

Get the last value bound to a list tag.

val set_tag : t -> 'a Tag.t -> 'a -> unit

Set the value bound to the tag.

val add_tag : t -> 'a list Tag.t -> 'a -> unit

Bind an additional value to a list tag.

val add_tag_opt : t -> 'a list Tag.t -> 'a option -> unit

Optionally bind an additional value to a list tag.

val add_tag_list : t -> 'a list Tag.t -> 'a list -> unit

Bind a list of additional values to a list tag.

val unset_tag : t -> _ Tag.t -> unit

Remove the binding to the given tag.

val int : t

The type constant for integers

val rat : t

The type constant for rationals

val real : t

The type constant for reals.

val prop : t

The type constant for propositions

val unit : t

The unit type.

val base : t

An arbitrary type constant.

val array : t

The type constant for arrays

val bitv : int -> t

Bitvectors of the given length.

val string : t

The type constant for strings

val string_reg_lang : t

The type constant for regular languages over strings.