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