sig
  type id
  val to_int : Rapids.ID.id -> int
  val from_int : int -> Rapids.ID.id
  val compare : Rapids.ID.id -> Rapids.ID.id -> int
  val succ : Rapids.ID.id -> Rapids.ID.id
  val scribe : 'Conduit.conduit -> '-> Rapids.ID.id -> unit
  val zero : Rapids.ID.id
  val sweep : Rapids.ID.id -> (Rapids.ID.id -> unit) -> unit
  val io : Rapids.ID.id Io.literate
end