[Haskell-cafe] How to construct a lazy list of eagerly-evaluated items?