`Monad((,)w)`实例是否符合标准?

luq*_*qui 19 monads haskell

我一直使用这对拼写Writer,但我总是要实例化自己:

instance (Monoid w) => Monad ((,) w) where
    return x = (mempty, x)
    ~(w,x) >>= f = let (w', y) = f x in (w `mappend` w', y)
Run Code Online (Sandbox Code Playgroud)

这是否存在于标准库中的任何位置?

Yit*_*itz 8

正如评论中提到的camccann,Control.Monad.Instances仅定义Functor实例.

Control.Monad.Applicative定义Applicative实例.

transformers包,并因此也版本2和上述的 mtl包中,定义一个包装函数writer :: (a, w) -> Writer w a.

但我没有在Monad任何地方找到实例.