class (Monoid w, Monad m) => MonadWriter w m | m -> w where
pass :: m (a,w -> w) -> m a
listen :: m a -> m (a,w)
tell :: w -> m ()
What is the meaning of the pipe above? The snippet comes from here.
Actually, it's a "functional dependency". In this case that means that m
uniquely identifies w
-- the type m
determines the type w
. (This may be a better link.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With