[Haskell-cafe] Language complexity & beginners (Was: New type of ($) operator in GHC 8.0 is problematic)

Marcin Mrotek marcin.jan.mrotek at gmail.com
Sat Feb 6 08:37:42 UTC 2016


I have a bad feeling this would complicate the parser and pretty printer a
lot, and thus isn't feasible, but what about allowing wildcards in kind
signatures?

I mean, in

forall (w :: Levity) a (b :: TYPE w). (a -> b) -> a -> b

the `w` variable seems superfluous, as it's only there to give it a kind
signature. I think there's enough information in `TYPE w` to infer the kind
(`TYPE` can only be parametrized with `Levity`?) so maybe something like
this would work:

forall a (b :: TYPE _). (a -> b) -> a -> b

This could be "some" compromise between "lying" about the type and being
scary to beginners, as at the very least all the type variables introduced
are actually used in the type signature.

Best regards,
Marcin Mrotek
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20160206/c7487fe1/attachment.html>


More information about the Haskell-Cafe mailing list