anchor.diff:                      x.Enqueue o
   
                   contained.Remove e |> ignore
  -                current <- None
  +                current <- null
               
   
   
  
positive.code:     // the contained set is useful for determinig if an element has
      // already been enqueued
      let contained = HashSet<IAdaptiveObject>()
      let mutable current = None
      let mutable currentLevel = 0
  
      let getAndClear (set : ICollection<'a>) =
  
negative.code:             while q.Count > 0 do
                  // dequeue the next element (having the minimal level)
                  let e = q.Dequeue(&currentLevel)
                  current <- e
  
                  traverseCount := !traverseCount + 1
  
  