I'd love to get rid of the `Deferrer` class, but doing so makes this break:    ```scala  val cycle1: LazyList[Int] = 1 #:: 2 #:: cycle1  ```    and call me a crazy functional programmer, but I like being able to do that.    (`1 #:: 2 #:: suspend(cycle1)` is a workaround, but not one I find all that pretty.)