sig
  type id
  type 'a getter = State.id -> 'a
  type 'a setter = State.id -> '-> unit
  val next_id : unit -> State.id
  val init : (unit -> 'a) -> 'State.getter * 'State.setter
end