sig
module type DATA =
sig type t val equal : Qstack.DATA.t -> Qstack.DATA.t -> bool end
module Make :
functor (D : DATA) ->
sig
type t
exception Empty
val create : unit -> Qstack.Make.t
val singleton : D.t -> Qstack.Make.t
val is_empty : Qstack.Make.t -> bool
val clear : Qstack.Make.t -> unit
val add : D.t -> Qstack.Make.t -> unit
val add_at_end : D.t -> Qstack.Make.t -> unit
val top : Qstack.Make.t -> D.t
val mem : D.t -> Qstack.Make.t -> bool
val filter : (D.t -> bool) -> Qstack.Make.t -> D.t list
val find : (D.t -> bool) -> Qstack.Make.t -> D.t
val remove : D.t -> Qstack.Make.t -> unit
val move_at_top : D.t -> Qstack.Make.t -> unit
val move_at_end : D.t -> Qstack.Make.t -> unit
val iter : (D.t -> unit) -> Qstack.Make.t -> unit
val map : (D.t -> D.t) -> Qstack.Make.t -> unit
val fold : ('a -> D.t -> 'a) -> 'a -> Qstack.Make.t -> 'a
val nth : int -> Qstack.Make.t -> D.t
val length : Qstack.Make.t -> int
val idx : D.t -> Qstack.Make.t -> int
end
end