Is there a safety reason for this? Otherwise it'd greatly improve user friendlyness if the macro could take an expression instead of an identifier!