Module type Datatype.S_no_copy

module type S_no_copy = sig .. end

All values associated to a datatype, excepted copy.


include Datatype.Ty
val name : string

Unique name of the datatype.

val descr : Datatype.t Descr.t

Datatype descriptor.

val packed_descr : Structural_descr.pack

Packed version of the descriptor.

val reprs : Datatype.t list

List of representants of the descriptor.

val equal : Datatype.t -> Datatype.t -> bool

Equality: same spec than Pervasives.(=).

val compare : Datatype.t -> Datatype.t -> int

Comparison: same spec than Pervasives.compare.

val hash : Datatype.t -> int

Hash function: same spec than Hashtbl.hash.

val pretty_code : Format.formatter -> Datatype.t -> unit

Pretty print each value in an ML-like style: the result must be a valid OCaml expression. Only useful for journalisation.

val internal_pretty_code : Type.precedence -> Format.formatter -> Datatype.t -> unit

Same spec than pretty_code, but must take care of the precedence of the context in order to put parenthesis if required. See Type.par.

val pretty : Format.formatter -> Datatype.t -> unit

Pretty print each value in an user-friendly way.

val varname : Datatype.t -> string

A good prefix name to use for an OCaml variable of this type. Only useful for journalisation.

val mem_project : (Project_skeleton.t -> bool) -> Datatype.t -> bool

mem_project f x must return true iff there is a value p of type Project.t in x such that f p returns true.