sig
  type t
  type kind = Backward | Forward | Both
  val create :
    string ->
    State_builder.Proxy.kind -> State.t list -> State_builder.Proxy.t
  val extend : State.t list -> State_builder.Proxy.t -> unit
  val get : State_builder.Proxy.t -> State.t
end