T2714.hs:8:5: Couldn't match type `c' with `f0 (a -> b)' `c' is a rigid type variable bound by the type signature for f :: ((a -> b) -> b) -> c -> a at T2714.hs:8:1 Expected type: ((a -> b) -> b) -> c -> a Actual type: ((a -> b) -> b) -> f0 (a -> b) -> f0 b Relevant bindings include f :: ((a -> b) -> b) -> forall c. c -> a (bound at T2714.hs:8:1) In the expression: ffmap In an equation for `f': f = ffmap T2714.hs:8:5: Couldn't match type `a' with `f0 b' `a' is a rigid type variable bound by the type signature for f :: ((a -> b) -> b) -> forall c. c -> a at T2714.hs:7:6 Expected type: ((a -> b) -> b) -> c -> a Actual type: ((a -> b) -> b) -> f0 (a -> b) -> f0 b Relevant bindings include f :: ((a -> b) -> b) -> forall c. c -> a (bound at T2714.hs:8:1) In the expression: ffmap In an equation for `f': f = ffmap