<div dir="ltr"><span style="font-size:12.800000190734863px">That's pretty but a pain to type. </span><div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 21 January 2015 at 16:32, Niklas Haas <span dir="ltr"><<a href="mailto:haskell@nand.wakku.to" target="_blank">haskell@nand.wakku.to</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">> Now we're definitely getting somewhere! I'm not to thrilled about the use<br>
> of string literals though. How about this?<br>
><br>
> {-# LANGUAGE TypeOperators, DataKinds, RankNTypes #-}<br>
> type (l ∷ t) = t<br>
><br>
> foo :: forall red green blue. (red ∷ Double) -> (green ∷ Double) -> (blue ∷<br>
> Double) -> IO ()<br>
><br>
> We just need to patch hlint to make this the suggested style.<br>
><br>
> - jeremy<br>
<br>
</span>In fact, why even bother with the explicit forall? Default behavior is<br>
to universally quantify unused variable names, after all.<br>
<br>
{-# LANGUAGE TypeOperators #-}<br>
<span class=""><br>
type (l ∷ t) = t<br>
<br>
</span>foo :: (red ∷ Double) -> (green ∷ Double) -> (blue ∷ Double) -> IO ()<br>
<br>
At this point, I think this is a syntax form we can surely all agree upon.<br>
<div class="HOEnZb"><div class="h5">_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br></div>