func Numbers() *Lazy {
	rootThunk := numberThunk(0)
	return NewLazy(rootThunk)
}
Numbers is a nice wrapper around numberThunk which creates an root thunk and
wraps it with a Lazy
package seq
import "fmt"
func numberThunk(i int) Thunk {
	return func() (interface{}, Thunk, bool) {
		return i, numberThunk(i + 1), true
	}
}