Compile macros wouldn&#x27;t be sufficient for Rust&#x27;s println! because the type signature (even the number of arguments) depends on the format string. The format string has to be constant and has to be interpreted at compile time so that the variables being printed can be type-checked.