sig
  type -'a t
  type opaque = [ `AF_INET6 ]
  type format = Unspecified | Unicast | Multicast
  type unspecified = [ `AF_INET6 | `X ]
  type unicast = [ `AF_INET6 | `U ]
  type multicast = [ `AF_INET6 | `M ]
  val format : Cf_ip6_addr.opaque Cf_ip6_addr.t -> Cf_ip6_addr.format
  val is_unicast :
    [> Cf_ip6_addr.opaque ] Cf_ip6_addr.t ->
    Cf_ip6_addr.unicast Cf_ip6_addr.t
  val is_multicast :
    [> Cf_ip6_addr.opaque ] Cf_ip6_addr.t ->
    Cf_ip6_addr.multicast Cf_ip6_addr.t
  type unicast_format =
      U_unassigned
    | U_reserved
    | U_loopback
    | U_v4compat
    | U_v4mapped
    | U_link
    | U_site
    | U_uniqlocal
    | U_global
  val unicast_format :
    [> Cf_ip6_addr.unicast ] Cf_ip6_addr.t -> Cf_ip6_addr.unicast_format
  type v4compat = [ `AF_INET6 | `U | `V4C ]
  val is_v4compat :
    [> Cf_ip6_addr.unicast ] Cf_ip6_addr.t ->
    Cf_ip4_addr.opaque Cf_ip4_addr.t
  val to_v4compat :
    [> Cf_ip4_addr.unicast ] Cf_ip4_addr.t ->
    Cf_ip6_addr.v4compat Cf_ip6_addr.t
  type v4mapped = [ `AF_INET6 | `U | `V4M ]
  val is_v4mapped :
    [> Cf_ip6_addr.unicast ] Cf_ip6_addr.t ->
    Cf_ip4_addr.opaque Cf_ip4_addr.t
  val to_v4mapped :
    [> Cf_ip4_addr.unicast ] Cf_ip4_addr.t ->
    Cf_ip6_addr.v4mapped Cf_ip6_addr.t
  type multicast_flag = M_F_transient | M_F_unassigned of int
  type multicast_scope =
      M_S_node
    | M_S_link
    | M_S_site
    | M_S_org
    | M_S_global
    | M_S_unassigned of int
  type multicast_group_id = [ `AF_INET6 | `G ]
  val to_multicast_components :
    [> Cf_ip6_addr.multicast ] Cf_ip6_addr.t ->
    Cf_ip6_addr.multicast_scope * Cf_ip6_addr.multicast_flag list *
    Cf_ip6_addr.multicast_group_id Cf_ip6_addr.t
  val of_multicast_components :
    Cf_ip6_addr.multicast_scope ->
    Cf_ip6_addr.multicast_flag list ->
    Cf_ip6_addr.multicast_group_id Cf_ip6_addr.t ->
    Cf_ip6_addr.multicast Cf_ip6_addr.t
  val unspecified : Cf_ip6_addr.unspecified Cf_ip6_addr.t
  val loopback : Cf_ip6_addr.unicast Cf_ip6_addr.t
  val node_local_all_nodes : Cf_ip6_addr.multicast Cf_ip6_addr.t
  val link_local_all_nodes : Cf_ip6_addr.multicast Cf_ip6_addr.t
  val link_local_all_routers : Cf_ip6_addr.multicast Cf_ip6_addr.t
  val equal :
    ([> Cf_ip6_addr.opaque ] as 'a) Cf_ip6_addr.t -> 'Cf_ip6_addr.t -> bool
  val compare :
    ([> Cf_ip6_addr.opaque ] as 'a) Cf_ip6_addr.t -> 'Cf_ip6_addr.t -> int
  val pton : string -> Cf_ip6_addr.opaque Cf_ip6_addr.t option
  val ntop : [> Cf_ip6_addr.opaque ] Cf_ip6_addr.t -> string
end