anchor.diff:      let outputs = WeakSet<IAdaptiveObject>() :> ICollection<_>
       let callbacks = ConcurrentHashSet<unit -> unit>() :> ICollection<_>
   
  -    static let isTopLevel = new System.Threading.ThreadLocal<bool>(fun () -> true)
       static let time = AdaptiveObject() :> IAdaptiveObject
   
       static member Time = time
  
positive.code:         // when the commit is over we restore the old
          // running transaction (if any)
          running.Value <- old
  
  /// <summary>
  /// defines a base class for all adaptive objects implementing
  
negative.code:     /// the enqueued changes.
      /// </summary>
      member x.Commit() =
          let top = isTopLevel.Value
          isTopLevel.Value <- false
  
  
          // cache the currently running transaction (if any)
          // and make tourselves current.
          let old = running.Value
  