It's a poor error message, but GHC's entire handling of impredicative
polymorphism is poor at the moment. Indeed, I'm seriously considering removing
it altogether until we can come up with a more robust story. (So don't rely on
it!)
The error happens because you are trying to use the type
See our previous discussion on this topic here:
http://www.nabble.com/Fwd:-Unification-for-rank-N-types-td23942179.html
Thanks,
Vladimir
On Wed, Oct 14, 2009 at 10:35 PM, Martijn van Steenbergen
mart...@van.steenbergen.nl wrote:
Dear café,
{-# LANGUAGE Rank2Types #-}
{-# LANGUAGE
* Martijn van Steenbergen mart...@van.steenbergen.nl [2009-10-14
20:35:06+0200]
Dear café,
{-# LANGUAGE Rank2Types #-}
{-# LANGUAGE ImpredicativeTypes #-}
type Void = forall a. a
newtype Mono a = Mono { runMono :: [Void] }
beep :: Mono a - Mono a
beep (Mono vs) = Mono (map undefined