sig
  type t = private Addr.t * int
  type outer_t = Addr.t * int
  val to_string : t -> string
  val print : Batteries.Format.formatter -> t -> unit
  val o : outer_t -> t
  val of_string : string -> t
  val random : ?mask:int -> unit -> t
  val single : Ip.Addr.t -> t
  val mem : t -> Ip.Addr.t -> bool
  val to_enum : t -> Ip.Addr.t BatEnum.t
  val zero_addr : t -> Ip.Addr.t
  val all1s_addr : t -> Ip.Addr.t
  val local_addrs : t -> Ip.Addr.t Batteries.Enum.t
  val random_addrs : t -> int -> Ip.Addr.t BatEnum.t
end