anchor.diff:          val mutable public OutOfDate : bool
           val mutable public Level : int 
           val mutable public Outputs : VolatileCollection<IAdaptiveObject>
  +        val mutable public WeakThis : WeakReference<IAdaptiveObject>
   
           new() =
               { Id = newId(); OutOfDate = true; 
  -              Level = 0; Outputs = VolatileCollection<IAdaptiveObject>() }
  +              Level = 0; Outputs = VolatileCollection<IAdaptiveObject>(); WeakThis = null }
   
       
           member inline this.evaluate (caller : IAdaptiveObject) (otherwise : Option<'a>) (f : unit -> 'a) =
  
positive.code: type AdaptiveDecorator(o : IAdaptiveObject) =
      let mutable o = o
      let id = newId()
      
      member x.Id = id
      member x.OutOfDate
          with get() = o.OutOfDate
  
negative.code:             callback ()
              false
  
          interface IWeakable<IAdaptiveObject> with
              member x.Weak =
                  let w = weakThis
                  if isNull w then 
                      let w = WeakReference<IAdaptiveObject>(x)
                      weakThis <- w
                      w
                  else
                      weakThis
  
          interface IAdaptiveObject with
              member x.Id = modId
  