免费(Reader x)阅读器(流 x)
特定
data Reader x a = Reader (x -> a)
我们有
data Free (Reader x) a
= Pure a
| Free (x -> Free (Reader x) a)
这是同构的
data Demand x a
= Satisfied a
| Hungry (x -> Demand x a)
或者相当于 Stream x -> a
data Stream x = Stream x (Stream x)