haskell - learn - list monad
¿La instancia `Monad((,,) w)` es estándar? (1)
Utilizo la ortografía en pares de Writer todo el tiempo, pero siempre tengo que crear una instancia:
instance (Monoid w) => Monad ((,) w) where
return x = (mempty, x)
~(w,x) >>= f = let (w'', y) = f x in (w `mappend` w'', y)
¿Vive esto en alguna parte en las bibliotecas estándar?
Como mencionó camccann en el comentario, Control.Monad.Instances define solo la instancia de Functor .
Control.Monad.Applicative define la instancia Applicative .
El paquete de transformers , y por lo tanto también la versión 2 y superior del paquete mtl , define un writer :: (a, w) -> Writer wa funciones de envoltura writer :: (a, w) -> Writer wa .
Pero no he encontrado la instancia de Monad ningún lado.