 
 operatorCompile = (ctx, call) ->
   ctx.setIsOperator yes
-  log "compiling operator"
+  ctx.subName()
   compiledOperator = atomCompile ctx, _operator call
+  ctx.resetName()
   ctx.resetIsOperator()
   compiledOperator
 
 callUnknownTranslate = (ctx, translatedOperator, call) ->
   args = _arguments call
-  argList = listOf termsCompile ctx, args
+
+
+  argList = if ctx.shouldDefer()
+    'deferred'
+  else
+    listOf termsCompile ctx, args
 
   callTyping ctx, call
 

  args = _arguments call

  compiledOperator = operatorCompile ctx, call

  compiledArgs = termsCompile ctx, args



  # Typing operator like inside a known call
  precsForData = operatorCompile ctx, call
  log 'op in pattern', precsForData

  # Gets the general type as if the extra arguments were supplied
  callTyping ctx, call

  combinePatterns join [precsForData], compiledArgs

jsObjectAccess = (fieldName) ->
  if (validIdentifier fieldName) is fieldName
