<div dir="ltr">Hello,<div><br></div><div>perhaps it is time to come up with some sort of decision here.  Based on the replies to this thread we seem to have the following opinions:</div><div>  1. Eric and Richard seem to be quite keen on the feature</div><div>  2. Simon is on the fence, but likes it because it introduces System F vocabulary to Haskell</div><div>  3. I am skeptical of the proposal as is, as I think it adds additional complexity to the language (more non-orthogonal features) without significant payoff.</div><div><br></div><div>Does anyone else have anything else to add?</div><div><br></div><div>-Iavor</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Mar 26, 2019 at 6:48 PM Eric Seidel <<a href="mailto:eric@seidel.io">eric@seidel.io</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Tue, Mar 26, 2019, at 13:17, Iavor Diatchki wrote:<br>
> My concern is that the notation certainly suggests that you are binding <br>
> types with the @ syntax, but in really it is still the type signature <br>
> that guides the binding of the variables and the @ parameters just <br>
> duplicate the information from the type signature.<br>
<br>
But you are binding types with the @ syntax. The proposal gives a number of examples where the @-bound type variable is bound by a different name (or not at all) in the type signature. Many are contrived, to demonstrate where the binders are allowed, but the higher-rank and proxy-eliding examples look compelling to me.<br>
<br>
We also already allow repeated value binders in Haskell. When I write a function in equational style, I have to rebind each argument in each alternate equation. Sometimes this is noisy and I'll prefer a single equation with an explicit `case`. But for functions where the body is sizable, I find the repeated binders to be quite helpful because the scopes are smaller. I can easily see the same benefit applying to type binders. Ultimately, I think this comes down to a matter of style, and I favor letting Haskell programmers pick the style that works best for them.<br>
<br>
Eric<br>
_______________________________________________<br>
ghc-steering-committee mailing list<br>
<a href="mailto:ghc-steering-committee@haskell.org" target="_blank">ghc-steering-committee@haskell.org</a><br>
<a href="https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee" rel="noreferrer" target="_blank">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee</a><br>
</blockquote></div>