>>624
すまん、修正(これ、よく忘れるんだ)。

> if 終了? then (return []) else (return $ d : f)

ds <- f
if 終了? then (return []) else (return $ d : ds)