For me, the problem with `forall @a .` is that it seems to go in the wrong 
direction: parameters declared with @ must not have @ when passed, and 
parameters declared without @ must have a @ if the parameter is passed 
explicitly.

However, if we say that @ makes a thing that is normally implicit explicit, 
maybe it works?

Richard

> On Nov 22, 2020, at 3:03 PM, Andrey Mokhov <andrey.mok...@newcastle.ac.uk> 
> wrote:
> 
> Hi John,
> 
>> - We are already getting `forall {a}.`, so it fits nicely with that.
> 
> Interesting, I wasn't aware of this. Could you point me to the relevant 
> proposal?
> 
>> - However, it would have to be `forall @a ->`, 
> 
> Oh, that seems even worse than `forall a ->` to me.
> 
>> because `forall a.` is already an invisible quantification,
>> unless one wants to just change the meaning of `forall a.`!
> 
> I'm confused. I wasn't suggesting to change the meaning of `forall a.`.
> 
> My suggestion was pretty incremental:
> 
> * `forall a.` stays as is: it allows for both invisible and visible type 
> arguments.
> * `forall @a.` requires a visible type argument.
> 
> Cheers,
> Andrey
> 
> -----Original Message-----
> From: John Ericson [mailto:john.ericson@obsidian.systems] 
> Sent: 22 November 2020 16:41
> To: Andrey Mokhov <andrey.mok...@newcastle.ac.uk>; Richard Eisenberg 
> <r...@richarde.dev>
> Cc: ghc-devs@haskell.org
> Subject: Re: Use of forall as a sigil
> 
> 
> I have thought about this too, and don't believe it has been widely
> discussed.
> 
> - 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.`!
> 
> John
> 

_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to