I don't understand why GHC (I was using 5.04.2) should reject these two
programs.

========

{-# OPTIONS -fglasgow-exts #-}

swap1 :: (forall a. a -> a, forall a. a -> a -> a)
      -> (forall a. a -> a -> a, forall a. a -> a)
swap1 (a, b) = (b, a)

yields:

Bug2.hs:3: parse error on input `,'

========

{-# OPTIONS -fglasgow-exts #-}

swap2 :: ((forall a. a -> a), (forall a. a -> a -> a))
      -> ((forall a. a -> a -> a), (forall a. a -> a))
swap2 (a, b) = (b, a)

yields:

Bug2.hs:3:
    Illegal polymorphic type: forall a. a -> a
    In the type: (forall a. a -> a, forall a. a -> a -> a)
                 -> (forall a. a -> a -> a, forall a. a -> a)
    While checking the type signature for `swap2'


_______________________________________________
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to