       for defined in def.definedNames
         addToMap auxiliaries, defined,
           deps: def.usedNames
+          defines: def.definedNames
           definition: def
     @_scope().auxiliaries = auxiliaries
 


findDefinitions = (ctx, names) ->
  auxiliaries = ctx.auxiliaries()
  concat (for name in names
    (lookupInMap auxiliaries, name)?.definition or [])

findDeps = (ctx) -> (names) ->
  auxiliaries = ctx.auxiliaries()

printIr = (ast) ->
  walkIr ast, (ast) ->
    args = {}
    for name, node of ast when name not in ['js', 'ir']
      args[name] =
        if node?
          if name is 'type'
            (printType node)
          else
            printIr node
        else
          undefined
    args
