Use of forall as a sigil

Eric Seidel eric at seidel.io
Thu Dec 3 16:39:06 UTC 2020


I think the confusion for me is that I've trained myself to think of
`forall` as explicitly introducing an implicit argument, and `->`
as introducing an explicit argument. So the syntax `forall a ->`
looks to me like a contradiction.

On Thu, Dec 3, 2020, at 10:56, Richard Eisenberg wrote:
> 
> 
> > On Dec 3, 2020, at 10:23 AM, Bryan Richter <b at chreekat.net> wrote:
> > 
> > Consider `forall a -> a -> a`. There's still an implicit universal quantification that is assumed, right?
> 
> No, there isn't, and I think this is the central point of confusion. A 
> function of type `forall a -> a -> a` does work for all types `a`. So I 
> think the keyword is appropriate. The only difference is that we must 
> state what `a` is explicitly. I thus respectfully disagree with
> 
> > But somewhere, an author decided to reuse the same keyword to herald 
> a type argument. It seems they stopped thinking about the meaning of 
> the word itself, saw that it was syntactically in the right spot, and 
> borrowed it to mean something else.
> Does this help clarify? And if it does, is there a place you can direct 
> us to where the point could be made more clearly? I think you're far 
> from the only one who has tripped here.
> 
> Richard
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>


More information about the ghc-devs mailing list