sig
  type version = string option
  type handle = release_number
  type id = release_id
  type t
  val create : unit -> t
  val register : t -> version -> handle
  val search : t -> version -> handle
  val compare_versions : t -> handle -> handle -> int
  val find : t -> id -> handle
  val get_version : handle -> version
  val get_id : handle -> id
  val iter : t -> (handle -> unit) -> unit
  val scribe_id : 'Conduit.conduit -> '-> id -> unit
  val io_id : id Io.literate
end