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 Stdlib.(=)
.
val compare : Datatype.t -> Datatype.t -> int
Comparison: same spec than Stdlib.compare
.
val hash : Datatype.t -> int
Hash function: same spec than Hashtbl.hash
.
val pretty_code : Stdlib.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 -> Stdlib.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 : Stdlib.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
.