Page
Library
Module
Module type
Parameter
Class
Class type
Source
Psq.SSourceSignature of priority search queues.
A search queue.
kfind k t is Some p if t contains the binding k -> p, or None otherwise.
add k p t is t with the binding k -> p. If k is already bound in t, that binding is replaced.
remove k t is t without the binding for k, or t, if k is not bound in t.
adjust f k t is t with the binding k -> p replaced by k -> f p. When k is not bound in t, the result is t.
pmin t is the binding Some (k, p) where p is minimal in t, or None if t is empty.
Note that min t is actually the smallest (p, k) in t — when multiple bindings share p, min t is the one with the smallest k.
fold_at_most p0 f z q folds f over bindings k -> p where p is not larger than p0, in key-ascending order.
iter_at_most p0 f q applies f to the bindings k -> p where p is not larger than p0, in key-ascending order.
iter_at_most p0 f q is the sequence of bindings k -> p where p not larger than p0, in key-ascending order.
fold f z t is f k0 p0 (f k1 p1 ... (f kn pn z)). Bindings are folded over in key-ascending order.
filter p t is the search queue with exactly the bindings in t which satisfy the predicate p.
partition p t splits t into (t1, t2), where t1 contains the bindings in t which satisfy the predicate p, and t2 contains those that don't.
iter f t applies f to all bindings in t in key-ascending order.
of_list kps is t with bindings kps. When there are multiple bindings for a given k, it is unspecified which one is chosen.
of_sorted_list kps is t with bindings kps. This operation is generally faster than of_list. kps must contain the bindings in key-ascending order without repetitions. When this is not the case, the result is undefined.
to_seq t iterates over all bindings in t in key-ascending order.
of_seq kps builds t from bindings kps. When there are multiple bindings for a given k, it is unspecified which one is chosen.
val pp :
?sep:(Format.formatter -> unit -> unit) ->
(Format.formatter -> (k * p) -> unit) ->
Format.formatter ->
t ->
unitpp ?sep pp_kp ppf t pretty-prints t to ppf, using pp_kp to print the bindings and ~sep to separate them. ~sep defaults to Format.print_space.