sig
exception Empty
exception OutOfBounds
type 'a t
and 'a cons
val deref : 'a Dllist.cons -> 'a
val create : unit -> 'a Dllist.t
val first : 'a Dllist.t -> 'a Dllist.cons
val last : 'a Dllist.t -> 'a Dllist.cons
val next : 'a Dllist.cons -> 'a Dllist.cons
val prev : 'a Dllist.cons -> 'a Dllist.cons
val insert_end : 'a -> 'a Dllist.t -> 'a Dllist.cons
val insert_before : 'a -> 'a Dllist.cons -> 'a Dllist.cons
exception Cons_already_free
val remove : 'a Dllist.cons -> unit
val count : 'a Dllist.t -> int
val to_list : 'a Dllist.t -> 'a Dllist.cons list
val iter : ('a -> unit) -> 'a Dllist.t -> unit
end