Is there any way for the same type to implement a typeclass multiple ways. The particular situation I have in mind is composing two monad trasformers of the same type, say reader monad. In pure theory one reader can lift through another, but in an implementation one gets a name clash. thanks Daniel