module Poly: sig
.. end
The polymorphic API to prefix-maps contains the subset of the operations
which do not depend on equality on the codomain. Note that the API is
really incomplete, and must be combined with the functor API. This is
made possible by the type equality Make(C).t = C.t Poly.t
. The purpose
of this module is to allow writing polymorphic functions acting on
pre-constructed maps.
type
prefix = Bitpath.t
type 'a
t
val empty : 'a t
val is_empty : 'a t -> bool
val const : 'a -> 'a t
val is_const : 'a t -> bool
val to_const : 'a t -> 'a
val picki_first : 'a t -> prefix * 'a
val picki_random : 'a t -> prefix * 'a
val lower_half : 'a t -> 'a t
val upper_half : 'a t -> 'a t
val unzoom : prefix ->
'a t -> 'a t
val zoom : prefix ->
'a t -> 'a t
val cover_find : prefix ->
'a t -> prefix
val remove : prefix ->
'a t -> 'a t
val intersect : prefix ->
'a t -> 'a t
val cover_card : 'a t -> int
val fold : ('a -> 'b -> 'b) -> 'a t -> 'b -> 'b
val foldi : (prefix -> 'a -> 'b -> 'b) ->
'a t -> 'b -> 'b
val iter : ('a -> unit) -> 'a t -> unit
val iteri : (prefix -> 'a -> unit) ->
'a t -> unit