I just learned about when-not / if-not
(go (while true ...)) => (go-loop [] ... (recur))
-> and cond->