On Sat, 12 Jan 2013, Roman Cheplyaka wrote:
* Henning Thielemann <lemm...@henning-thielemann.de> [2013-01-12 13:42:56+0100]
If you can easily avoid using an extension, like in the case of the
TypeSynonymInstances and FlexibleInstances in case-insensitive then
this seems better to me, than adding FlexibleInstances to all Haskell
compilers and Haskell tools (haddock, hlint, etc.), going through a
Haskell Prime proposal procedure, etc.
I am not so sure here. That helper method or type class is just an ugly
hack to work around a limitation of the type class system.
Using it does not improve the code itself.
It improves because the code becomes more generic - you get a reasonable
instance for all list types with a character like element. So to speak,
avoiding FlexibleInstances is more flexible here.
GHC shows that there's a way to lift this limitation (and it's been
known for many years). Is that extension controversial in the type
systems community? Why?
In my opinion if String needs special treatment and there is no
reasonable generic list instance then String should be avoided and a
custom type should be used. (This also applies to showList.)
FlexibleInstances are dangerous because they can yield conflicting
instances that are not orphan. Although I think that can only happen with
multiple parameter type classes.
_______________________________________________
Haskell-platform mailing list
Haskell-platform@projects.haskell.org
http://projects.haskell.org/cgi-bin/mailman/listinfo/haskell-platform