anchor.diff:                      None
   
               member this.assoc(shift, hashKey, key, value, addedLeaf) = 
  -                let bit = NodeHelpers.bitpos(hashKey, shift)
  -                let idx = NodeHelpers.index(this.bitmap,bit)
  +                let bit = BitCount.bitpos(hashKey, shift)
  +                let idx = BitCount.index(this.bitmap,bit)
                   if (this.bitmap &&& bit) <> 0 then
                       let keyOrNull = this.array.[2*idx]
                       let valOrNode = this.array.[2*idx+1]
  
positive.code:                         this :> INode
  
              member this.without(thread1, shift, hashKey, key, removedLeaf) =
                  let bit = NodeHelpers.bitpos(hashKey, shift)
                  if (this.bitmap &&& bit) = 0 then this :> INode else
                  let idx = NodeHelpers.index(this.bitmap,bit)
  
                  let keyOrNull = this.array.[2*idx]
                  let valOrNode = this.array.[2*idx+1]
  
negative.code:                         addedLeaf.Value <- addedLeaf :> obj
                          HashCollisionNode(thread, hashKey, this.count + 1, newArray) :> INode
                  else
                      (BitmapIndexedNode(ref null, BitCount.bitpos(hashCollisionKey, shift), [| null; this |]) :> INode)
                          .assoc(shift, hashKey, key, value, addedLeaf)
  
              member this.assoc(thread1, shift, hashKey, key, value, addedLeaf) : INode = 
  