[ghc-steering-committee] Language Extension Policy – Round 2
Eric Seidel
eric at seidel.io
Thu Apr 27 14:11:42 UTC 2023
On Thu, Apr 27, 2023, at 04:09, Simon Peyton Jones wrote:
> The thing about warnings is different. I think you are suggesting that
> we should:
> • Remove (say) MultiParamTypeClasses as an extension
> • Accept programs that use MultiParamTypeClasses unconditionally
> • But with a warning
> • That can be suppressed with -fno-warn-multi-param-type-classes
> So a long {-# LANGUAGE X1, X2 #-} preamble will be replace with a long
> {-# OPTIONS_GHC -fno-warn-X1 -fno-warn-X2 #-} block.
I can't speak for Simon, but I felt similarly about Extensions vs Warnings. What you're saying here is not quite what I had in mind. For me it's more like
> • Remove (say) MultiParamTypeClasses as an extension
> • Accept programs that use MultiParamTypeClasses unconditionally
> • If you want to disallow MPTCs, you can disable them with `-Wmulti-param-type-classes -Werror`
In other words, MPTCs are simply part of the language now. Not a second class citizen that must be opted into with an Extension or by *disabling* a Warning. We leave an escape hatch in the form of an opt-in warning for those who would rather not use MPTCs, much like other aspects of the language the may be controversial.
More information about the ghc-steering-committee
mailing list