sig
  type 'a t
  exception Exhausted
  val make : int -> int -> int -> 'a -> 'a Dynamic_buffer.t
  val position : 'a Dynamic_buffer.t -> int -> unit
  val next : 'a Dynamic_buffer.t -> 'a
  val add : 'a Dynamic_buffer.t -> 'a -> unit
  val reset : 'a Dynamic_buffer.t -> unit
  val is_empty : 'a Dynamic_buffer.t -> bool
  val get_position : 'a Dynamic_buffer.t -> int
end