Then switching on some of them permanently hasn’t fixed anything: they still might not work together – or the 40 that are on permanently might not work together with the extra 10 you want for your project. Note that MultiParamTypeClasses
doesn’t work too well without FunctionalDependencies
, then adding OverlappingInstances
(or rather the OVERLAP*
pragmas) don’t work together too well, so you usually have to switch on UndecidableInstances
which sounds scary: which of those do you want permanently on?
This question is: do ‘we’ want to make some extensions permanently switched on? I say No.
Do I want to to remove extensions? Yes. Now that I see how much violence Dependent Haskell is doing to the syntax of the language, I want to remove all those warts, and ask GHC high command to start the design again to achieve the same functionality (if that’s what they want) but be no more intrusive than FunctionalDependencies
.
I have a similar feeling about PatternSynonyms
: now that we know how to get them to play nicely (which wasn’t at all clear when the work started), please now throw away the current form of declarations and start again.