Module Sstt.Tag

Identifiers used for tagged type.

Identifiers used for tagged type.

type t
val mk : string -> t

mk name makes a new identifier of name name. This will generate a fresh identifier even if another identifier has name name.

val name : t -> string

name t returns the name of the identifier t.

val hash : t -> int
val compare : t -> t -> int
val equal : t -> t -> bool
val pp : Stdlib.Format.formatter -> t -> unit

pp fmt t prints the name of t using the formatter fmt.

val pp_unique : Stdlib.Format.formatter -> t -> unit

pp_unique fmt t prints the name of t followed by a unique integer to disambiguate it from other identifiers with the same name.

type prop =
  1. | NoProperty
  2. | Monotonic of {
    1. preserves_cup : bool;
    2. preserves_cap : bool;
    }
val mk' : string -> prop -> t
val properties : t -> prop