sig
  type direction = Forward | Backward
  type 'a t = 'a list * Sequence.direction * int
  val print :
    (unit, Format.formatter, unit) Pervasives.format ->
    (Format.formatter -> '-> unit) ->
    Format.formatter -> 'Sequence.t -> unit
  val is_empty : 'Sequence.t -> bool
  val length : 'Sequence.t -> int
  val rev : 'Sequence.t -> 'Sequence.t
  val forward : 'Sequence.t -> 'Sequence.t
  val backward : 'Sequence.t -> 'Sequence.t
  val map : ('-> 'b) -> 'Sequence.t -> 'Sequence.t
  val filter : ('-> bool) -> 'Sequence.t -> 'Sequence.t
  val to_array : 'Sequence.t -> 'a array
  val of_array : 'a array -> 'Sequence.t
end