
On Feb 7, 2016, at 10:11 AM, Tom Ellis
No one has suggested anything less contrived, so I'm going to assume this encompasses all use cases for the new type. in which case may I make a counter proposal:
Give Prelude.($) a truthful type of '(a -> b) -> a -> b' and put the generalized version in a separate module, at least for now?
I would agree with this... except that the version of ($) in base in 7.8 and 7.10 already *was* generalized in this way. But no one got as itchy about the OpenKind that appears in 7.10's `:i $` as they are about the guck that appears in 8.0's `:t ($)`. So moving it out now would break code in the wild like https://ghc.haskell.org/trac/ghc/ticket/8739 Just to amplify this point: the generalization of ($) that we are debating **is not new**. The way it's rendered in GHCi is new, however. Richard