when as macro in core.clj