T14846.hs:38:8: error: [GHC-25897] • Couldn't match type ‘ríki’ with ‘Hom riki’ Expected: ríki a a Actual: Hom riki a a ‘ríki’ is a rigid type variable bound by the type signature for: i :: forall {k4} {k5} {cls2 :: k5 -> Constraint} (xx :: k4) (a :: Struct cls2) (ríki :: Struct cls2 -> Struct cls2 -> *). StructI xx a => ríki a a at T14846.hs:38:8-48 • When checking that instance signature for ‘i’ is more general than its signature in the class Instance sig: forall {k1} {k3} {cls :: k3 -> Constraint} (xx :: k1) (a :: Struct cls). StructI xx a => Hom riki a a Class sig: forall {k1} {k2} {cls :: k2 -> Constraint} (xx :: k1) (a :: Struct cls) (ríki :: Struct cls -> Struct cls -> *). StructI xx a => ríki a a In the instance declaration for ‘Category (Hom riki)’ T14846.hs:39:44: error: [GHC-25897] • Couldn't match kind ‘k3’ with ‘Struct cls2’ Expected kind ‘Struct cls2 -> Constraint’, but ‘cls’ has kind ‘k3 -> Constraint’ ‘k3’ is a rigid type variable bound by the instance declaration at T14846.hs:37:10-65 • In the second argument of ‘Structured’, namely ‘cls’ In the first argument of ‘AStruct’, namely ‘(Structured a cls)’ In an expression type signature: AStruct (Structured a cls) • Relevant bindings include i :: Hom riki a a (bound at T14846.hs:39:3)