Thanks, but I don't want to change the definition of Commute. That makes it into a function that can only ever return that form, whereas I just want to return the unevaluated form this once for testing/debugging purposes (which is what macroexpand-1 does)