Category.lhs:410:5: Couldn't match `forall (a :: * -> *) (b :: * -> *). Fn (Hom Fn a b) (Hom Fn (ret a) (ret b)) (UnivFunctorPC a b pcSub ret)' against `Fn a b pc' In the definition of `foo': foo (Fn uf) gab = case uf gab of FnRes (UnivFunctorPC idLaw compLaw) r -> ...