    {-|
      Data structures to express IPv4, IPv6 and IP range.
    -}
    module Data.IP (
      -- * IP data
        IP (..)
      -- ** IPv4
      , IPv4, toIPv4, fromIPv4, fromHostAddress, toHostAddress
      -- ** IPv6
      , IPv6, toIPv6, toIPv6b, fromIPv6, fromIPv6b, fromHostAddress6, toHostAddress6
      -- ** Converters
      , ipv4ToIPv6
      , fromSockAddr
      -- * IP range data
      , IPRange (..)
      , AddrRange (addr, mask, mlen)
      -- * Address class
      , Addr (..)
      , makeAddrRange, (>:>), isMatchedTo, addrRangePair
      , ipv4RangeToIPv6
      ) where

    import Data.IP.Addr
    import Data.IP.Op
    import Data.IP.Range