     ast: ast
     errors: errors
     malformed: ctx.isMalformed
+
+expandCall = (moduleName, call) ->
+  {modules, ctx} = contextWithDependencies moduleDependencies moduleName
+  expanded = callMacroExpand ctx, call
+  if not isTranslated expanded
+    expanded
 
 importsFor = (moduleSet) ->
   lookupDefinitions = (name) ->

      js: ''
    }
  else
    module = lookupCompiledModule moduleName
    {modules, ctx} = contextWithDependencies moduleDependencies moduleName
    [expression] = _terms ast
    compilationFn = (topLevelExpressionInModule importsFor moduleDependencies moduleName)

        (call_ (join [expandedOp], (_arguments call)))

callMacroCompile = (ctx, call) ->
  expanded = callMacroExpand ctx, call
  if isTranslated expanded
    expanded
  else
    compiled = expressionCompile ctx, expanded
    retrieve call, expanded
    compiled

callMacroExpand = (ctx, call) ->
  op = _operator call
  op.label = 'keyword'
  macro = ctx.macro op.symbol
  op.id = macro.id
  macro ctx, call

isTranslated = (result) ->
  (isSimpleTranslated result) or (Array.isArray result) and ((_empty result) or (isSimpleTranslated result[0]))
