 
 assignCompile = (ctx, expression, translatedExpression) ->
   # if not translatedExpression # TODO: throw here?
-    #log expression
   if ctx.isAtDefinition()
     to = ctx.definitionPattern()
 

        translation: nameTranslate ctx, atom, symbol
      }
    else
      #log "deferring for #{symbol}"
      ctx.doDefer atom, symbol
      translation: 'deferred'



  definedNames = ctx.definedNames()

  # log "is deferriing", pattern, ctx.shouldDefer()
  # Make sure deferred names are added to scope so they are compiled within functions
  if ctx.shouldDefer()
    for {name} in definedNames
