Is it necessary to have access to the internal structure of a monad to write the monad transformer?
For example: I'd like to have GetT - transformer for Get monad from Data.Binary.Get,
but this module doesn't expose internals of Get monad. Does it mean that the only
way for me is to add GetT directly to Data.Binary.Get module?