Jon Fairbairn wrote: > If you allow quantification over higher > kinds, you can do something like this: > > d f = f . f > > d:: ∀a::*, b::*→*.(b a → a) → b (b a)→ a > What's the problem with d :: (forall c . b c -> c) -> b (b a) -> a d f = f . f to which ghci gives the type d :: forall a b. (forall c. b c -> c) -> b (b a) -> a Jim