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