
Perhaps such warnings could be added to a tool like HLint? I do not think they belong in GHC.
HLint does not do typechecking so it can only catch operations on tuple literals (which the latest version does), not very useful unfortunately. On Thu, Feb 25, 2016 at 11:28 PM, Kosyrev Serge <_deepfire@feelingofgreen.ru
wrote:
Edward Kmett
writes: It is actually quite fundamental.
Instance resolution works on pattern matching on the type and we need all instances to be "global" and not able to be hidden or locally overridden to avoid coherence problems.
There have been attempts to relax this restriction in the past, none of which are particularly satisfactory.
* http://dspace.library.uu.nl/handle/1874/294072 is probably the most recent, but some are quite old.
Thank you for the education!
But basically all of them have run afoul of other ways to get "stuck" when resolving instances, or needing a vocabulary to track provenance of instances, or violate the open world assumptions.
To my undeducated guess, the paper appears to do a decent job on covering the alternatives.
One thing changed since that paper -- type families gained injectivity, the lack of which was listed as the issue with the associated type families approach.
Barring the (huge) question of it changing the kind of Functor, are there any other problems with it?
-- с уважениeм / respectfully, Косырев Сергей _______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries