anchor.diff:                  |> Array.exists (fun wr -> WeakRef.contains dep wr)
               if (not depExists) then
                   depIDeps <- depIDeps |> Array.append [| WeakReference<_>(dep) |])
  +
       member this.AddObserver (obs,source) =
           lock this.LockObj (fun _ ->
               depObservers <- depObservers |> Array.append [| obs |])
  
positive.code:         lock this.LockObj (fun _ ->
              depIDeps <- depIDeps |> Array.filter (removeAndFilterDep dep)
              this.HasDependencies)
      member this.RemoveObserver (obs, source) = 
          lock this.LockObj (fun _ ->
              depObservers <- depObservers |> Array.filter (removeAndFilterObs obs)
  
negative.code: [<AbstractClass;AllowNullLiteral>]
  type internal DependencyTrackerBase() =
      do ()
  
  /// <summary>Used to track dependencies</summary>
  /// <remarks>This class is fully thread safe, and will not hold references to dependent targets</remarks>
  [<AllowNullLiteral>]
  