[Haskell-cafe] Best way to provide monad transformer instances in library design?