sig
type entry = { mutable prev : int; mutable next : int; }
type 'a t = {
last_used : Tools.OrdArray.entry array;
mutable first : int;
mutable last : int;
data : 'a array;
}
val make_from_data : 'a array -> 'a Tools.OrdArray.t
val make : int -> 'a -> 'a Tools.OrdArray.t
val init : int -> (int -> 'a) -> 'a Tools.OrdArray.t
val get : 'a Tools.OrdArray.t -> int -> 'a
val set : 'a Tools.OrdArray.t -> int -> 'a -> unit
val first : 'a Tools.OrdArray.t -> int
val last : 'a Tools.OrdArray.t -> int
val remove : 'a Tools.OrdArray.t -> int -> unit
val add_head : 'a Tools.OrdArray.t -> int -> unit
val promote : 'a Tools.OrdArray.t -> int -> unit
end