anchor.diff:  /// </summary>
   [<AbstractClass>]
   type ConstantObject() =
  +
  +    let mutable weakThis : WeakReference<IAdaptiveObject> = null
  +
  +    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 = -1
           member x.Level
  
positive.code:         match o with
              | :? IAdaptiveObject as o -> x.Id = id
              | _ -> false
  
      interface IAdaptiveObject with
          member x.Id = id
  
negative.code: open System.Threading
  open System.Linq
  
  [<AllowNullLiteral>]
  type IWeakable<'a when 'a : not struct> =
      abstract member Weak : WeakReference<'a>
  
  type VolatileCollection<'a when 'a :> IWeakable<'a> and 'a : not struct>() =
      let mutable set : HashSet<WeakReference<'a>> = null
      let mutable pset : List<WeakReference<'a>> = List()
  
      let mutable v = Unchecked.defaultof<_>
  
  