Like defn, but the resulting function name is declared as a macro and will be used as a macro by the compiler when it is called.