In Ruby to build a custom lazy enumerator, one can utilize Enumerator like this:
enum = Enumerator.new do |e|
e << value = ".a"
loop { e << value = value.next }
end
enum.next # => ".a"
enum.next # => ".b"
enum.next # => ".c"
enum.rewind
enum.next # => ".a"
What's the Crystal's idiomatic way to imitate such a thing?