implementation restriction: untyped macros cannot be overloaded
implementation restriction: untyped macros ignore partial type annotations