Use of forall as a sigil

John Ericson john.ericson at
Sun Nov 22 16:40:51 UTC 2020

I have thought about this too, and don't believe it has been widely 

- We are already getting `forall {a}.`, so it fits nicely with that.

- However, it would have to be `forall @a ->`, because `forall a.` is 
already an invisible quantification, unless one wants to just change the 
meaning of `forall a.`!


On 11/22/20 6:23 AM, Andrey Mokhov wrote:
> Hi Richard,
>> In the end, I've never loved the forall ... -> syntax, but I've never seen
>> anything better.
> What about the forall @a. syntax?
> For example:
>    sizeOf :: forall @a. Sized a => Int
> We already use @ to explicitly specify types, so it seems natural mark type parameters that must be explicitly specified with @ too.
> Here's how one would read it: "for all explicitly specified a, ..."
> Apologies if this has been discussed and I missed it. It doesn't seem to be mentioned in the Alternatives section of the proposal but perhaps it will just never work for some reason.
> Cheers,
> Andrey
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at

More information about the ghc-devs mailing list