CasePrune.hs:14:31: Couldn't match type ‘Int’ with ‘A’ arising from the coercion of the method ‘ic’ from type ‘T Int’ to type ‘T A’ Relevant role signatures: type role T nominal When deriving the instance for (C A)