anchor.diff:          
   
       member x.Remove(value : 'a) : bool =
  -        let value = Weak value
  +        let value = value.Weak
           if isNull set then 
               pset.Remove(value)
           else
               set.Remove value
   
  -
  +type VolatileCollectionStrong<'a>() =
  +    let mutable set : HashSet<'a> = null
  +    let mutable pset : List<'a> = List()
  +
  +    member x.IsEmpty = 
  +        if isNull set then pset.Count = 0
  +        else set.Count = 0
  +
  +    member x.Consume(length : byref<int>) : array<'a> =
  +        if isNull set then
  +            let res = pset.ToArray()
  +            length <- res.Length
  +            pset.Clear()
  +            res
  +        else
  +            let res = set.ToArray()
  +            length <- res.Length
  +            set.Clear()
  +            res
  +
  +    member x.Add(value : 'a) : bool =
  +        if isNull set then 
  +            let id = pset.IndexOf(value)
  +            if id < 0 then 
  +                pset.Add(value)
  +                if pset.Count > 8 then
  +                    set <- HashSet pset
  +                    pset <- null
  +                true
  +            else 
  +                false
  +        else
  +            set.Add value
  +        
  +
  +    member x.Remove(value : 'a) : bool =
  +        if isNull set then 
  +            pset.Remove(value)
  +        else
  +            set.Remove value
   
   /// <summary>
   /// IAdaptiveObject represents the core interface for all
  
positive.code: open System.Threading
  open System.Linq
  
  type VolatileCollection<'a when 'a: not struct>() =
      let mutable set : HashSet<Weak<'a>> = null
      let mutable pset : List<Weak<'a>> = List()
  
      let mutable v = Unchecked.defaultof<_>
  
  
negative.code: type AdaptiveDecorator(o : IAdaptiveObject) =
      let mutable o = o
      let id = newId()
      let mutable weakThis = null
  
      member x.Id = id
      member x.OutOfDate
          with get() = o.OutOfDate
  