untyped macros enable textual abstraction in pattern matching