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