The abstract data type to express an IPv4 address.
To create this, use toIPv4. Or use read"192.0.2.1" :: IPv4, for example. Also, "192.0.2.1" can be used as literal with OverloadedStrings.
The abstract data type to express an IPv6 address.
To create this, use toIPv6. Or use read"2001:DB8::1" :: IPv6, for example. Also, "2001:DB8::1" can be used as literal with OverloadedStrings.
The Addr range consists of an address, a contiguous mask,
and mask length. The contiguous mask and the mask length
are essentially same information but contained for pre
calculation.
To create this, use makeAddrRange or read"192.0.2.0/24" :: AddrRangeIPv4.
Also, "192.0.2.0/24" can be used as literal with OverloadedStrings.