Added loop/recur macro for tail-call optimization