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.