, , , : ( C, & ot;, 1) A C, , X & otimes; X. C Hask, & otimes; & times;, , C Hask, & otimes; ∐ (), - ( - w.r.t. ∐ - , "", - , . ). , , ⊥ , & times; . , , ( , , - ) Writer Either ( modulo newtypes, ).
Writer m &mdash, , , , -, comonad (,) m - m:
instance Comonad ((,) m) where
coreturn (m, a) = a
cojoin (m, a) = (m, (m, a))
(, , m , .. m →(), m → m & times; m).