functor (C : Equatable->
  sig
    type prefix = Bitpath.t
    type codomain = C.t
    type t = Bitpath_cover_map.Make.codomain Bitpath_cover_map.Poly.t
    val equal : Bitpath_cover_map.Make.t -> Bitpath_cover_map.Make.t -> bool
    val disjoint :
      Bitpath_cover_map.Make.t -> Bitpath_cover_map.Make.t -> bool
    val empty : Bitpath_cover_map.Make.t
    val is_empty : Bitpath_cover_map.Make.t -> bool
    val const : Bitpath_cover_map.Make.codomain -> Bitpath_cover_map.Make.t
    val is_const : Bitpath_cover_map.Make.t -> bool
    val to_const :
      Bitpath_cover_map.Make.t -> Bitpath_cover_map.Make.codomain
    val picki_first :
      Bitpath_cover_map.Make.t ->
      Bitpath_cover_map.Make.prefix * Bitpath_cover_map.Make.codomain
    val picki_random :
      Bitpath_cover_map.Make.t ->
      Bitpath_cover_map.Make.prefix * Bitpath_cover_map.Make.codomain
    val appose :
      Bitpath_cover_map.Make.t ->
      Bitpath_cover_map.Make.t -> Bitpath_cover_map.Make.t
    val lower_half : Bitpath_cover_map.Make.t -> Bitpath_cover_map.Make.t
    val upper_half : Bitpath_cover_map.Make.t -> Bitpath_cover_map.Make.t
    val unzoom :
      Bitpath_cover_map.Make.prefix ->
      Bitpath_cover_map.Make.t -> Bitpath_cover_map.Make.t
    val zoom :
      Bitpath_cover_map.Make.prefix ->
      Bitpath_cover_map.Make.t -> Bitpath_cover_map.Make.t
    val cover_find :
      Bitpath_cover_map.Make.prefix ->
      Bitpath_cover_map.Make.t -> Bitpath_cover_map.Make.prefix
    val add :
      Bitpath_cover_map.Make.prefix ->
      Bitpath_cover_map.Make.codomain ->
      Bitpath_cover_map.Make.t -> Bitpath_cover_map.Make.t
    val remove :
      Bitpath_cover_map.Make.prefix ->
      Bitpath_cover_map.Make.t -> Bitpath_cover_map.Make.t
    val intersect :
      Bitpath_cover_map.Make.prefix ->
      Bitpath_cover_map.Make.t -> Bitpath_cover_map.Make.t
    val modify :
      Bitpath_cover_map.Make.prefix ->
      (Bitpath_cover_map.Make.t -> Bitpath_cover_map.Make.t) ->
      Bitpath_cover_map.Make.t -> Bitpath_cover_map.Make.t
    val cover_card : Bitpath_cover_map.Make.t -> int
    val fold :
      (Bitpath_cover_map.Make.codomain -> '-> 'a) ->
      Bitpath_cover_map.Make.t -> '-> 'a
    val foldi :
      (Bitpath_cover_map.Make.prefix ->
       Bitpath_cover_map.Make.codomain -> '-> 'a) ->
      Bitpath_cover_map.Make.t -> '-> 'a
    val iter :
      (Bitpath_cover_map.Make.codomain -> unit) ->
      Bitpath_cover_map.Make.t -> unit
    val iteri :
      (Bitpath_cover_map.Make.prefix ->
       Bitpath_cover_map.Make.codomain -> unit) ->
      Bitpath_cover_map.Make.t -> unit
    val map :
      ('-> Bitpath_cover_map.Make.codomain) ->
      'Bitpath_cover_map.Poly.t -> Bitpath_cover_map.Make.t
    val mapi :
      (Bitpath_cover_map.Make.prefix -> '-> Bitpath_cover_map.Make.codomain) ->
      'Bitpath_cover_map.Poly.t -> Bitpath_cover_map.Make.t
    val right_isecn :
      Bitpath_cover_map.Make.t ->
      Bitpath_cover_map.Make.t -> Bitpath_cover_map.Make.t
    val right_union :
      Bitpath_cover_map.Make.t ->
      Bitpath_cover_map.Make.t -> Bitpath_cover_map.Make.t
    val valid : Bitpath_cover_map.Make.t -> bool
  end