Module Project.Computation.OUTPUT.Datatype


module Datatype: Project.Datatype.S 

include Project.Datatype.INPUT

Exportation of inputs (easier use of Datatype.Register).
val register_comparable : ?compare:(Project.t -> Project.t -> int) ->
?equal:(Project.t -> Project.t -> bool) ->
?hash:(Project.t -> int) -> ?physical_hash:(Project.t -> int) -> unit -> unit
Allow to register a specific compare, equal, hash and physical_hash functions for the datatype.

hash and equal have to be compatible, that is: forall x y, equal x y ==> hash x = hash y.

physical_hash has to be compatible with physical equality (==), that is: forall x y, x == y ==> physical_hash x = physical_hash y.

Never call registered_comparable is equivalent to call register_comparable ().

Note that, as usual in ocaml, the default values for equal and hash are not compatible for all datastructures (though for the most ones).

val is_comparable_set : unit -> bool
Returns false if register_comparable has never been called.

Access to the functions registered by registered_comparable


val hash : Project.t -> int
val physical_hash : Project.t -> int
val equal : Project.t -> Project.t -> bool
val compare : Project.t -> Project.t -> int
val contain_project : (Project.project -> Project.t -> bool) option Pervasives.ref
Since Beryllium-20090901