It is really too bad the 'middle' version does not work, ie John Fairbarn's version
> d1 :: (forall c . b c -> c) -> b (b a) -> a > d1 f = f . f John Meacham's version (dual (?)) > d2 :: (forall c . c -> b c) -> a -> b (b a) > d2 f = f . f Or something in the middle > d3 :: forall e a b . (forall c . e c -> b c) -> (e a) -> (b a) > d3 f = f . f but ghci -fglasgow-exts does not like it :-( Jacques _______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell