     compiledMacro = translateToJs translateIr ctx,
       (termCompile ctx, call_ (token_ 'fn'), (join [paramTuple], rest))
     # log compiledMacro
-    ctx.addMacro macroName, simpleMacro eval compiledMacro
+    ctx.addMacro ctx.definitionPattern(), simpleMacro eval compiledMacro
     params = (map token_, paramNames) # freshen
 
     fn_ params, call_ (token_ macroName), params

    compiledMacro = translateToJs translateIr ctx,
        (termCompile ctx, call_ (token_ 'fn'), (join [paramTuple], rest))
    macroFn = eval compiledMacro
    ctx.addMacro macroName, (ctx, call) ->
      # operatorCompile ctx, call
      # args = termsCompile ctx, (_arguments call)[0..macroFn.length]
      #callTyping ctx, call

callMacroCompile = (ctx, call) ->
  op = _operator call
  op.label = 'keyword'
  macro = ctx.macros()[op.symbol]
  op.id = macro.id
  expanded = macro ctx, call
  if isTranslated expanded
    expanded
  else
