sig
  type t
  val descr : Unmarshal.t
  val copy : t -> t
  val name : string
  val register_comparable :
    ?compare:(Project.t -> Project.t -> int) ->
    ?equal:(Project.t -> Project.t -> bool) ->
    ?hash:(Project.t -> int) -> unit -> unit
  val is_comparable_set : unit -> bool
  val hash : Project.t -> int
  val equal : Project.t -> Project.t -> bool
  val compare : Project.t -> Project.t -> int
  val mem_project :
    ((Project.project -> bool) -> Project.t -> bool) option Pervasives.ref
end