免費(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)