Why is my implementation of Iterable not lazy

I don’t spend my days thinking about collections, but I think my previous comment is still cogent or relevant.

You can’t expect that result to be either strict or lazy unless Stefan Zeiger tells you so. Zeiger points the way.