Sometimes you want to use macros to create small code transformations that result in an expression (ie. not an **if-else**, **for**, **while** or definition). For this purpose, you can use the second type of macro that Nessa has: **expression macros**. Let"s see how they work. ## Syntax An expression macro can be created in Nessa using this syntax: ``` syntax expr macro_name from NDL_Pattern { [...] } ``` You can see that the syntax is almost the same, but contains the `expr` keyword. The other thing that changes is how they are compiled internally: ``` syntax expr double_integer from "Dbl" Arg(1{d}, n) { $n + $n } // This macro ... print(Dbl6); // ... is compiled to this print(6 + 6); ``` You might be worrying about operator precedence by looking at this, but the interpreter ensures that the expression inside the macro is kept as-is, so you could use it like this: ``` // This macro ... print(2 * Dbl6); // ... is compiled to this ... print(2 * (6 + 6)); // ... not to this print(2 * 6 + 6); ```