Cofree(作家 w)WriterT w Stream

特定

data Writer w a = Writer w a

我们有

data Cofree (Writer w) a
     = a :< (w, Cofree (Writer w) a)

这相当于

data Stream (w,a)
     = Stream (w,a) (Stream (w,a))

哪个可以正确写成 WriterT w Stream

data WriterT w m a = WriterT (m (w,a))