I see the following pattern in several places of
(if (next more)
(recur ... (next more))
next is invoked twice before
Is it “by design” or just unobserved code?
I expect a little more performant implementation like:
(if-let [next' (next more)]
(recur ... next')