anchor.diff:                          // This property must therefore be maintained for every
                           // path in the entire system.
                           let r = f()
  -                        outOfDate <- false
  +                        this.OutOfDate <- false
   
                           // if the object's level just got greater than or equal to
                           // the level of the running transaction (if any)
  
positive.code:             depth := !depth + 1
  
              if not (isNull caller) then
                  outputs.Add caller |> ignore
                  caller.Level <- max caller.Level (level + 1)
  
              try
                  match otherwise with
                      | Some v when not outOfDate -> 
                          res <- v
                      | _ ->
                          // this evaluation is performed optimistically
  
negative.code:                             if !depth > 1 then Transaction.RunningLevel - 1
                              else Transaction.RunningLevel
  
                          if this.Level > maxAllowedLevel then
                              //printfn "%A tried to pull from level %A but has level %A" top.Id level top.Level
                              // all greater pulls would be from the future
                              raise <| LevelChangedException(this, this.Level, !depth - 1)
                              
                          res <- r
  
  