在前几期讨论中我们终于推导出了Free Monad.这是一个Monad工厂,它可以把任何F[A]变成Monad.可惜的是它对F[A]是有所要求的:F必须是个Functor.Free Monad由此被称为由Functor F 产生的Monad.F必须是Functor,这个门槛使我们在使用Free Monad时很不方便.举个前面讨论过的例子: trait Console[A] case object GetLine extends Console[String] case class PutLine…