I simply like Clojure.
I want you to know that this is the most useful comment I've ever gotten.
I had no idea that clojure.edn/read-string simply reads a string as literal clojure data.
This is opposed to clojure.core/read-string which reads a string as executable clojure code.
You only see it in cases where some functions are mutually recursive.
To tell you the truth I didn't really know about this algorithm.
I just went at the problem function by function and this is what I ended up with.
I simply like Clojure.