def METHOD_NAME(func: Callable) -> TIRMacro:
    source, closure_vars = scan_macro(func, utils.inspect_function_capture(func))
    obj = TIRMacro(source, closure_vars, func, hygienic)
    obj.__name__ = func.__name__
    return obj