[ghc-steering-committee] A few more pleas

Eric Seidel eric at seidel.io
Tue Dec 8 15:36:12 UTC 2020

On Mon, Dec 7, 2020, at 22:47, Richard Eisenberg wrote:
> A plea for NamedWildCards: This feature allows type variables beginning 
> with an underscore to be treated as a component in a partial type 
> signature. Critically (for this plea), a type signature with a named 
> wild card will not be accepted without -XPartialTypeSignatures. I do 
> *not* advocate for -XPartialTypeSignatures! So, having -XNamedWildCards 
> on simply means that we get an informative error message when the user 
> writes a type variable beginning with an underscore. The only downside 
> is that programs such as id :: _a -> _a are no longer accepted. But 
> does anyone write type variables with leading underscores? If we think 
> this is at all common, then I would change my mind here. Why have it on 
> by default? Because it's not easily discoverable, and the error 
> messages really are quite nice.

Aha, so what you're saying is that with NamedWildCards but not PartialTypeSignatures, GHC will tell you what `_a` was solved for, but it won't accept the resulting program? I didn't realize that NamedWildCards did anything in the absence of PartialTypeSignatures, but I agree that this is better. I was already voting for NamedWildCards, but now I'm inclined to additionally vote against PartialTypeSignatures.

More information about the ghc-steering-committee mailing list