`sig
type 'a t
type 'a node
val create : ?timer:float -> int -> 'a Ocsigen_cache.Dlist.t
val add : 'a -> 'a Ocsigen_cache.Dlist.t -> 'a option
val remove : 'a Ocsigen_cache.Dlist.node -> unit
val up : 'a Ocsigen_cache.Dlist.node -> unit
val newest : 'a Ocsigen_cache.Dlist.t -> 'a Ocsigen_cache.Dlist.node option
val oldest : 'a Ocsigen_cache.Dlist.t -> 'a Ocsigen_cache.Dlist.node option
val size : 'a Ocsigen_cache.Dlist.t -> int
val maxsize : 'a Ocsigen_cache.Dlist.t -> int
val value : 'a Ocsigen_cache.Dlist.node -> 'a
val get_timer : 'a Ocsigen_cache.Dlist.t -> float option
val list_of :
'a Ocsigen_cache.Dlist.node -> 'a Ocsigen_cache.Dlist.t option
val remove_n_oldest : 'a Ocsigen_cache.Dlist.t -> int -> 'a list
val fold : ('b -> 'a -> 'b) -> 'b -> 'a Ocsigen_cache.Dlist.t -> 'b
val fold_back : ('b -> 'a -> 'b) -> 'b -> 'a Ocsigen_cache.Dlist.t -> 'b
val lwt_fold :
('b -> 'a -> 'b Lwt.t) -> 'b -> 'a Ocsigen_cache.Dlist.t -> 'b Lwt.t
val lwt_fold_back :
('b -> 'a -> 'b Lwt.t) -> 'b -> 'a Ocsigen_cache.Dlist.t -> 'b Lwt.t
val move :
'a Ocsigen_cache.Dlist.node -> 'a Ocsigen_cache.Dlist.t -> 'a option
val set_maxsize : 'a Ocsigen_cache.Dlist.t -> int -> 'a list
val set_finaliser_before :
('a Ocsigen_cache.Dlist.node -> unit) -> 'a Ocsigen_cache.Dlist.t -> unit
val get_finaliser_before :
'a Ocsigen_cache.Dlist.t -> 'a Ocsigen_cache.Dlist.node -> unit
val set_finaliser_after :
('a Ocsigen_cache.Dlist.node -> unit) -> 'a Ocsigen_cache.Dlist.t -> unit
val get_finaliser_after :
'a Ocsigen_cache.Dlist.t -> 'a Ocsigen_cache.Dlist.node -> unit
end`