anchor.diff:  
       /// Get the value of a property.
       let inline getPropertyValue indices (p : PropertyInfo) (x : obj) = p.GetValue (x, indices)
  -
  -    /// Test for equality, usually faster than (=).
  -    let inline fastEq (x : 'a) (y : 'a) = LanguagePrimitives.GenericEquality x y
   
       /// Test for reference equality.
       let inline refEq (x : 'a) (y : 'a) = obj.ReferenceEquals (x, y)
  
positive.code:         | Nil
          | Singleton of Hkv<'k, 'v>
          | Multiple of HNode<'k, 'v> array
          | Bucket of Hkv<'k, 'v> array
  
      [<RequireQualifiedAccess>]
      module private HNode =
  
negative.code:                 
                  // handle clash cases
                  match node with
                  | Nil -> Gutter (Array.singleton hkv)
                  | Singleton hkv' -> Gutter [|hkv'; hkv|]
                  | Multiple _ -> failwithumf () // should never hit here
                  | Gutter gutter -> Gutter (addToGutter hkv gutter)
      
          let rec remove (h : int) (k : 'k) (dep : int) (node : HNode<'k, 'v>) : HNode<'k, 'v> =
              match node with
  