Clojure lazy evaluation and stack overflow exceptions
medium.com