sig
  type elt
  val length : unit -> int
  val set_length : int -> unit
  val get : int -> State_builder.Array.elt
  val set : int -> State_builder.Array.elt -> unit
  val iter : (State_builder.Array.elt -> unit) -> unit
  val iteri : (int -> State_builder.Array.elt -> unit) -> unit
  val fold_left : ('-> State_builder.Array.elt -> 'a) -> '-> 'a
  val fold_right : (State_builder.Array.elt -> '-> 'a) -> '-> 'a
end