sig moduletypeOrderedType = sig type t val compare : Pqueue.OrderedType.t ->Pqueue.OrderedType.t -> int end moduletypeMin = sig type t type elt val create : unit ->Pqueue.Min.t val length : Pqueue.Min.t -> int val is_empty : Pqueue.Min.t -> bool val add : Pqueue.Min.t ->Pqueue.Min.elt -> unit val add_iter : Pqueue.Min.t ->
((Pqueue.Min.elt -> unit) ->'x -> unit) ->'x -> unit val min_elt : Pqueue.Min.t ->Pqueue.Min.elt option val get_min_elt : Pqueue.Min.t ->Pqueue.Min.elt val pop_min : Pqueue.Min.t ->Pqueue.Min.elt option val remove_min : Pqueue.Min.t -> unit val clear : Pqueue.Min.t -> unit val copy : Pqueue.Min.t ->Pqueue.Min.t val of_array : Pqueue.Min.elt array ->Pqueue.Min.t val of_list : Pqueue.Min.elt list ->Pqueue.Min.t val of_iter :
((Pqueue.Min.elt -> unit) ->'x -> unit) ->'x ->Pqueue.Min.t val iter_unordered : (Pqueue.Min.elt -> unit) ->Pqueue.Min.t -> unit val fold_unordered :
('acc ->Pqueue.Min.elt ->'acc) ->'acc ->Pqueue.Min.t ->'acc end moduleMakeMin :
(E : OrderedType) -> sig type t val create : unit -> t val length : t -> int val is_empty : t -> bool val add : t ->E.t -> unit val add_iter : t -> ((E.t -> unit) ->'x -> unit) ->'x -> unit val min_elt : t ->E.t option val get_min_elt : t ->E.t val pop_min : t ->E.t option val remove_min : t -> unit val clear : t -> unit val copy : t -> t val of_array : E.t array -> t val of_list : E.t list -> t val of_iter : ((E.t -> unit) ->'x -> unit) ->'x -> t val iter_unordered : (E.t -> unit) -> t -> unit val fold_unordered : ('acc ->E.t ->'acc) ->'acc -> t ->'acc end moduletypeMax = sig type t type elt val create : unit ->Pqueue.Max.t val length : Pqueue.Max.t -> int val is_empty : Pqueue.Max.t -> bool val add : Pqueue.Max.t ->Pqueue.Max.elt -> unit val add_iter : Pqueue.Max.t ->
((Pqueue.Max.elt -> unit) ->'x -> unit) ->'x -> unit val max_elt : Pqueue.Max.t ->Pqueue.Max.elt option val get_max_elt : Pqueue.Max.t ->Pqueue.Max.elt val pop_max : Pqueue.Max.t ->Pqueue.Max.elt option val remove_max : Pqueue.Max.t -> unit val clear : Pqueue.Max.t -> unit val copy : Pqueue.Max.t ->Pqueue.Max.t val of_array : Pqueue.Max.elt array ->Pqueue.Max.t val of_list : Pqueue.Max.elt list ->Pqueue.Max.t val of_iter :
((Pqueue.Max.elt -> unit) ->'x -> unit) ->'x ->Pqueue.Max.t val iter_unordered : (Pqueue.Max.elt -> unit) ->Pqueue.Max.t -> unit val fold_unordered :
('acc ->Pqueue.Max.elt ->'acc) ->'acc ->Pqueue.Max.t ->'acc end moduleMakeMax :
(E : OrderedType) -> sig type t val create : unit -> t val length : t -> int val is_empty : t -> bool val add : t ->E.t -> unit val add_iter : t -> ((E.t -> unit) ->'x -> unit) ->'x -> unit val max_elt : t ->E.t option val get_max_elt : t ->E.t val pop_max : t ->E.t option val remove_max : t -> unit val clear : t -> unit val copy : t -> t val of_array : E.t array -> t val of_list : E.t list -> t val of_iter : ((E.t -> unit) ->'x -> unit) ->'x -> t val iter_unordered : (E.t -> unit) -> t -> unit val fold_unordered : ('acc ->E.t ->'acc) ->'acc -> t ->'acc end moduletypeOrderedPolyType = sig type'a t val compare : 'a Pqueue.OrderedPolyType.t ->'b Pqueue.OrderedPolyType.t -> int end moduletypeMinPoly = sig type'a t type'a elt val create : unit ->'a Pqueue.MinPoly.t val length : 'a Pqueue.MinPoly.t -> int val is_empty : 'a Pqueue.MinPoly.t -> bool val add : 'a Pqueue.MinPoly.t ->'a Pqueue.MinPoly.elt -> unit val add_iter : 'a Pqueue.MinPoly.t ->
(('a Pqueue.MinPoly.elt -> unit) ->'x -> unit) ->'x -> unit val min_elt : 'a Pqueue.MinPoly.t ->'a Pqueue.MinPoly.elt option val get_min_elt : 'a Pqueue.MinPoly.t ->'a Pqueue.MinPoly.elt val pop_min : 'a Pqueue.MinPoly.t ->'a Pqueue.MinPoly.elt option val remove_min : 'a Pqueue.MinPoly.t -> unit val clear : 'a Pqueue.MinPoly.t -> unit val copy : 'a Pqueue.MinPoly.t ->'a Pqueue.MinPoly.t val of_array : 'a Pqueue.MinPoly.elt array ->'a Pqueue.MinPoly.t val of_list : 'a Pqueue.MinPoly.elt list ->'a Pqueue.MinPoly.t val of_iter :
(('a Pqueue.MinPoly.elt -> unit) ->'x -> unit) -> 'x ->'a Pqueue.MinPoly.t val iter_unordered :
('a Pqueue.MinPoly.elt -> unit) ->'a Pqueue.MinPoly.t -> unit val fold_unordered :
('acc ->'a Pqueue.MinPoly.elt ->'acc) -> 'acc ->'a Pqueue.MinPoly.t ->'acc end moduleMakeMinPoly :
(E : OrderedPolyType) -> sig type'a t val create : unit ->'a t val length : 'a t -> int val is_empty : 'a t -> bool val add : 'a t ->'a E.t -> unit val add_iter : 'a t -> (('a E.t -> unit) ->'x -> unit) ->'x -> unit val min_elt : 'a t ->'a E.t option val get_min_elt : 'a t ->'a E.t val pop_min : 'a t ->'a E.t option val remove_min : 'a t -> unit val clear : 'a t -> unit val copy : 'a t ->'a t val of_array : 'a E.t array ->'a t val of_list : 'a E.t list ->'a t val of_iter : (('a E.t -> unit) ->'x -> unit) ->'x ->'a t val iter_unordered : ('a E.t -> unit) ->'a t -> unit val fold_unordered : ('acc ->'a E.t ->'acc) ->'acc ->'a t ->'acc end moduletypeMaxPoly = sig type'a t type'a elt val create : unit ->'a Pqueue.MaxPoly.t val length : 'a Pqueue.MaxPoly.t -> int val is_empty : 'a Pqueue.MaxPoly.t -> bool val add : 'a Pqueue.MaxPoly.t ->'a Pqueue.MaxPoly.elt -> unit val add_iter : 'a Pqueue.MaxPoly.t ->
(('a Pqueue.MaxPoly.elt -> unit) ->'x -> unit) ->'x -> unit val max_elt : 'a Pqueue.MaxPoly.t ->'a Pqueue.MaxPoly.elt option val get_max_elt : 'a Pqueue.MaxPoly.t ->'a Pqueue.MaxPoly.elt val pop_max : 'a Pqueue.MaxPoly.t ->'a Pqueue.MaxPoly.elt option val remove_max : 'a Pqueue.MaxPoly.t -> unit val clear : 'a Pqueue.MaxPoly.t -> unit val copy : 'a Pqueue.MaxPoly.t ->'a Pqueue.MaxPoly.t val of_array : 'a Pqueue.MaxPoly.elt array ->'a Pqueue.MaxPoly.t val of_list : 'a Pqueue.MaxPoly.elt list ->'a Pqueue.MaxPoly.t val of_iter :
(('a Pqueue.MaxPoly.elt -> unit) ->'x -> unit) -> 'x ->'a Pqueue.MaxPoly.t val iter_unordered :
('a Pqueue.MaxPoly.elt -> unit) ->'a Pqueue.MaxPoly.t -> unit val fold_unordered :
('acc ->'a Pqueue.MaxPoly.elt ->'acc) -> 'acc ->'a Pqueue.MaxPoly.t ->'acc end moduleMakeMaxPoly :
(E : OrderedPolyType) -> sig type'a t val create : unit ->'a t val length : 'a t -> int val is_empty : 'a t -> bool val add : 'a t ->'a E.t -> unit val add_iter : 'a t -> (('a E.t -> unit) ->'x -> unit) ->'x -> unit val max_elt : 'a t ->'a E.t option val get_max_elt : 'a t ->'a E.t val pop_max : 'a t ->'a E.t option val remove_max : 'a t -> unit val clear : 'a t -> unit val copy : 'a t ->'a t val of_array : 'a E.t array ->'a t val of_list : 'a E.t list ->'a t val of_iter : (('a E.t -> unit) ->'x -> unit) ->'x ->'a t val iter_unordered : ('a E.t -> unit) ->'a t -> unit val fold_unordered : ('acc ->'a E.t ->'acc) ->'acc ->'a t ->'acc end end