Perfect! Problem solved and now I understand about "kinds" of types. instance Rect (PRect a) a where ... works if "Num a" is added to it, like: instance Num a => Rect (PRect a) a where ... (GHC has pretty informative error messages) Thank you for great answers! /johan