Экземпляр `Monad ((,) w)` где угодно стандартно?

Я все время использую парное написание Writer , но мне всегда приходится создавать экземпляр самого себя:

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

Есть ли это где-нибудь в стандартных библиотеках?

19
задан luqui 17 November 2010 в 16:26
поделиться