Just read Conal Elliott's draft paper Denotational design with type class morphisms . I thought the same point was made more succinctly and with more substance in his earlier paper Simply efficient functional reactivity . Many of us already know what is in the new paper, but it still makes a valuable point. However, I think it should be a Functional Pearl, and it might work twice as well if it were half as long.Conal is right to put forward type class morphisms as a design principle. However, I think he oversells their utility. In Section 6, he states that the fact the laws of an applicative functor are satisfied for TMap come 'for free', but they are 'free' only because he assumes you have already verified the same laws for (->), which is isomorphic to TMap.The principle of type class morphisms is closely related to a design principle elucidated by John Reynolds in his paper Using Category Theory to Design Implicit Conversions and Generic Operators : implicit conversions between types should be homomorphisms on generic operators (that is, on overloaded operations defined by both types).