On Thu, Sep 8, 2011 at 3:23 PM, Sebastian Nowicki <sebnow@gmail.com> wrote:
I don't know if it's generally accepted to provide Read/Show instances which don't parse/print Haskell syntax.
It's quite common, and several "standard" libraries do it. Handle for example has a (fairly useless) Show instance. Whether it's a good idea or not is another question :)
Planned for the next release:
* Support for parsing IPv4 notation embedded in IPv6 (e.g. "::192.168.1.1")
is the result a value of type IPv4 or IPv6? For an IPv4-Compatible address I'd expect the result to be IPv4. It might also be useful to add a conversion function to turn an IPv4 address into an IPv4-Mapped IPv6 address.
Technically it's an IPv6 address, "::192.168.1.1" isn't a valid IPv4 string (hence parsing should fail). You can convert from one address to another using toAddress . fromAddress, i.e.:
(toAddress . fromAddress $ (readAddress "192.168.1.1" :: IPv4)) :: IPv6
If these sorts of type coercions are often necessary, maybe you should just expose read(s)IPv4 and toIPv6 and friends?