Module Bitpath_cover_map.Poly

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