sig
  type prefix = Bitpath.t
  type t
  val equal : Bitpath_cover.t -> Bitpath_cover.t -> bool
  val disjoint : Bitpath_cover.t -> Bitpath_cover.t -> bool
  val empty : Bitpath_cover.t
  val is_empty : Bitpath_cover.t -> bool
  val universe : Bitpath_cover.t
  val is_universe : Bitpath_cover.t -> bool
  val of_prefix : Bitpath_cover.prefix -> Bitpath_cover.t
  val is_prefix : Bitpath_cover.t -> bool
  val to_prefix : Bitpath_cover.t -> Bitpath_cover.prefix
  val pick_first : Bitpath_cover.t -> Bitpath_cover.prefix
  val pick_random : Bitpath_cover.t -> Bitpath_cover.prefix
  val appose : Bitpath_cover.t -> Bitpath_cover.t -> Bitpath_cover.t
  val lower_half : Bitpath_cover.t -> Bitpath_cover.t
  val upper_half : Bitpath_cover.t -> Bitpath_cover.t
  val unzoom : Bitpath_cover.prefix -> Bitpath_cover.t -> Bitpath_cover.t
  val zoom : Bitpath_cover.prefix -> Bitpath_cover.t -> Bitpath_cover.t
  val cover_find :
    Bitpath_cover.prefix -> Bitpath_cover.t -> Bitpath_cover.prefix
  val add : Bitpath_cover.prefix -> Bitpath_cover.t -> Bitpath_cover.t
  val remove : Bitpath_cover.prefix -> Bitpath_cover.t -> Bitpath_cover.t
  val intersect : Bitpath_cover.prefix -> Bitpath_cover.t -> Bitpath_cover.t
  val modify :
    Bitpath_cover.prefix ->
    (Bitpath_cover.t -> Bitpath_cover.t) ->
    Bitpath_cover.t -> Bitpath_cover.t
  val fold :
    (Bitpath_cover.prefix -> '-> 'a) -> Bitpath_cover.t -> '-> 'a
  val iter : (Bitpath_cover.prefix -> unit) -> Bitpath_cover.t -> unit
  val cover_card : Bitpath_cover.t -> int
  val isecn : Bitpath_cover.t -> Bitpath_cover.t -> Bitpath_cover.t
  val union : Bitpath_cover.t -> Bitpath_cover.t -> Bitpath_cover.t
  val rel_compl : Bitpath_cover.t -> Bitpath_cover.t -> Bitpath_cover.t
  val abs_compl : Bitpath_cover.t -> Bitpath_cover.t
  val compl_decomp : Bitpath_cover.t -> Bitpath_cover.t * Bitpath_cover.t
  val valid : Bitpath_cover.t -> bool
  val dump : Pervasives.out_channel -> Bitpath_cover.t -> unit
end