At 2002-03-06 06:13, Ralf Laemmel wrote: >This is not a bug,
Isn't it? Consider: class Class x where combinator' :: (forall y. Class y => y -> y) -> x -> x This gives: combinator' :: forall x. Class x => (forall y. Class y => y -> y) -> x -> x What happens when you pass something of type (forall y. Class y => y -> y)? s :: forall x. Class x => x -> x s = combinator' id; So I would claim that these two types are the same: forall x. Class x => (forall y. Class y => y -> y) -> x -> x (forall y. Class y => y -> y) -> (forall x. Class x => x -> x) ...so you should be able to do this: combinator :: (forall y. Class y => y -> y) -> (forall x. Class x => x -> x) combinator f x = combinator' f x but for some reason GHC 5.02.2 complains. I think this is a bug. Apparently 5.03 has rank-N polymorphism so maybe this is fixed too. -- Ashley Yakeley, Seattle WA _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell