sig
  type 'a t
  type 'a node
  val get : 'Lwt_sequence.node -> 'a
  val set : 'Lwt_sequence.node -> '-> unit
  val remove : 'Lwt_sequence.node -> unit
  val create : unit -> 'Lwt_sequence.t
  val is_empty : 'Lwt_sequence.t -> bool
  val length : 'Lwt_sequence.t -> int
  val add_l : '-> 'Lwt_sequence.t -> 'Lwt_sequence.node
  val add_r : '-> 'Lwt_sequence.t -> 'Lwt_sequence.node
  exception Empty
  val take_l : 'Lwt_sequence.t -> 'a
  val take_r : 'Lwt_sequence.t -> 'a
  val take_opt_l : 'Lwt_sequence.t -> 'a option
  val take_opt_r : 'Lwt_sequence.t -> 'a option
  val transfer_l : 'Lwt_sequence.t -> 'Lwt_sequence.t -> unit
  val transfer_r : 'Lwt_sequence.t -> 'Lwt_sequence.t -> unit
  val iter_l : ('-> unit) -> 'Lwt_sequence.t -> unit
  val iter_r : ('-> unit) -> 'Lwt_sequence.t -> unit
  val iter_node_l :
    ('Lwt_sequence.node -> unit) -> 'Lwt_sequence.t -> unit
  val iter_node_r :
    ('Lwt_sequence.node -> unit) -> 'Lwt_sequence.t -> unit
  val fold_l : ('-> '-> 'b) -> 'Lwt_sequence.t -> '-> 'b
  val fold_r : ('-> '-> 'b) -> 'Lwt_sequence.t -> '-> 'b
end