Sometimes I come across a βfunctionβ that Haskell only matches instances, namely
instance (a ~ NewDataTyp b) => C a
will now match any type, i.e. writing another C instance declaration in your program will be an error, even if it cannot conflict because of the context of a ~ NewDataTyp b . From time to time, a lot of effort is required to overcome; I had to rebuild hundreds of lines of code to avoid this limitation.
Are there language extensions or descendant languages ββ(Curry? Agda?) That are designed with a higher priority for expressiveness? This can bring sacrifice (a) the openness of the world of styles (b) a polynomial definition of time.
edit - for those who are interested in the question, this page may also be of interest: http://www.haskell.org/haskellwiki/Future_of_Haskell
haskell typeclass overlapping-instances
gatoatigrado
source share