sig
type 'a t
val empty : 'a Reins.DoubleQueue.t
val is_empty : 'a Reins.DoubleQueue.t -> bool
val hd : 'a Reins.DoubleQueue.t -> 'a
val tl : 'a Reins.DoubleQueue.t -> 'a Reins.DoubleQueue.t
val pop : 'a Reins.DoubleQueue.t -> 'a * 'a Reins.DoubleQueue.t
val cons : 'a -> 'a Reins.DoubleQueue.t -> 'a Reins.DoubleQueue.t
val hd_back : 'a Reins.DoubleQueue.t -> 'a
val tl_back : 'a Reins.DoubleQueue.t -> 'a Reins.DoubleQueue.t
val pop_back : 'a Reins.DoubleQueue.t -> 'a Reins.DoubleQueue.t * 'a
val cons_back : 'a -> 'a Reins.DoubleQueue.t -> 'a Reins.DoubleQueue.t
val snoc : 'a -> 'a Reins.DoubleQueue.t -> 'a Reins.DoubleQueue.t
val last : 'a Reins.DoubleQueue.t -> 'a
val enqueue : 'a -> 'a Reins.DoubleQueue.t -> 'a Reins.DoubleQueue.t
val dequeue : 'a Reins.DoubleQueue.t -> 'a * 'a Reins.DoubleQueue.t
val length : 'a Reins.DoubleQueue.t -> int
val rev : 'a Reins.DoubleQueue.t -> 'a Reins.DoubleQueue.t
val append :
'a Reins.DoubleQueue.t ->
'a Reins.DoubleQueue.t -> 'a Reins.DoubleQueue.t
val iter : ('a -> unit) -> 'a Reins.DoubleQueue.t -> unit
val fold : ('a -> 'b -> 'a) -> 'a -> 'b Reins.DoubleQueue.t -> 'a
val rev_map :
('a -> 'b) -> 'a Reins.DoubleQueue.t -> 'b Reins.DoubleQueue.t
val map : ('a -> 'b) -> 'a Reins.DoubleQueue.t -> 'b Reins.DoubleQueue.t
val to_list : 'a Reins.DoubleQueue.t -> 'a list
val from_list : 'a list -> 'a Reins.DoubleQueue.t
val flatten :
'a Reins.DoubleQueue.t Reins.DoubleQueue.t -> 'a Reins.DoubleQueue.t
val to_string : ('a -> string) -> 'a Reins.DoubleQueue.t -> string
val compare :
('a -> 'a -> int) ->
'a Reins.DoubleQueue.t -> 'a Reins.DoubleQueue.t -> int
val gen :
(?size:int -> Random.State.t -> 'a) ->
?size:int -> Random.State.t -> 'a Reins.DoubleQueue.t
end