 
   doDefer: (expression, dependencyName) ->
     definition = @_deferrableDefinition()
-    definition._defer =
-      (@_deferReasonOf definition) or [expression, dependencyName, @currentScopeIndex()]
+    definition._defers.push [expression, dependencyName, @currentScopeIndex()]
 
   deferReason: ->
     @_deferReasonOf @_deferrableDefinition()


      #log "compiling wheres", pairs wheres
      compiledWheres = definitionListCompile ctx, pairs wheres
      # 1. Construct dependency graph
      # 2. Add to context

      ctx.setAuxiliaryDefinitions compiledWheres
      # compiledWheres = concat filter _is, compiledWheres


    !!(@_deferReasonOf @_deferrableDefinition())

  _deferReasonOf: (definition) ->
    definition?._defers[0]

  addDeferredDefinition: ([expression, dependencyName, useScopeIndex, lhs, rhs]) ->
    @_scope().deferred.push [expression, dependencyName, useScopeIndex, lhs, rhs]
