module Lwt_sequence:Mutable sequence of elementssig..end
type 'a t
'atype 'a node
'a in a sequenceexception Empty
take_* when the sequence is emptyval get : 'a node -> 'aval set : 'a node -> 'a -> unitval remove : 'a node -> unitval create : unit -> 'a tcreate () creates a new empty sequenceval is_empty : 'a t -> booltrue iff the given sequence is emptyval add_l : 'a -> 'a t -> 'a nodeadd_l x s adds x to the left of the sequence sval add_r : 'a -> 'a t -> 'a nodeadd_l x s adds x to the right of the sequence sval take_l : 'a t -> 'atake_l x s remove and returns the leftmost element of sEmpty if the sequence is emptyval take_r : 'a t -> 'atake_l x s remove and returns the rightmost element of sEmpty if the sequence is emptyval take_opt_l : 'a t -> 'a optiontake_opt_l x s remove and returns Some x where x is the
leftmost element of s or None if s is emptyval take_opt_r : 'a t -> 'a optiontake_opt_l x s remove and returns Some x where x is the
rightmost element of s or None if s is emptyval transfer_l : 'a t -> 'a t -> unittransfer_l s1 s2 removes all elements of s1 and add them at
the left of s2. This operation runs in constant time and
space.val transfer_r : 'a t -> 'a t -> unittransfer_r s1 s2 removes all elements of s1 and add them at
the right of s2. This operation runs in constant time and
space.val iter_l : ('a -> unit) -> 'a t -> unititer_l f s applies f on all elements of s starting from
the leftval iter_r : ('a -> unit) -> 'a t -> unititer_l f s applies f on all elements of s starting from
the rightval iter_node_l : ('a node -> unit) -> 'a t -> unititer_l f s applies f on all nodes of s starting from
the leftval iter_node_r : ('a node -> unit) -> 'a t -> unititer_l f s applies f on all nodes of s starting from
the rightval fold_l : ('a -> 'b -> 'b) -> 'a t -> 'b -> 'bfold_l f s is:
fold_l f s x = f en (... (f e2 (f e1 x)))
where to_list s = [e1; e2; ...; en]
val fold_r : ('a -> 'b -> 'b) -> 'a t -> 'b -> 'bfold_r f s is:
fold_r f s x = f e1 (f e2 (... (f en x)))
where to_list s = [e1; e2; ...; en]