I see (third bullet here) OverlappingInstances
is an example of something to be Deprecated
. I won’t comment over there because @david-christiansen explicitly asks for feedback from ‘industrial Haskell users’ only.
I agree that with OverlappingInstances
GHC could do a lot better; especially when you’re trying to combine with FunctionalDependencies
. But we know what ‘better’ looks like – we know so well that it’s implemented. (In a Haskell that’s 15 years out of date, built on technology that’s 25 years out of date. Yes I am blaming and shaming GHC.)
That closed TypeFamilies
offers very similar functionality is evidence it’s desired; that the work on DuplicateRecordFields
and friends chose to use FunctionalDependencies
shows TypeFamilies
hasn’t taken over. (Indeed I hear mutterings that TypeFamilies
will get obviated by DependentHaskell
some day.)
Currently there seems no plan to do anything about the mess in GHC – it’s lost in the stampede for DependentHaskell
. I suggest appearing to deprecate such a widely-used feature by fiat of a side-mention in a process-oriented proposal is not reflecting the intent here (see next message).