anchor.diff:          set.Contains (int key)
   
       //
  +    [<CompiledName("Union")>]
  +    let inline union (set1 : TagSet<'Tag>) (set2 : TagSet<'Tag>) : TagSet<'Tag> =
  +        // Retype as IntSet
  +        let set1 : IntSet = retype set1
  +        let set2 : IntSet = retype set2
  +
  +        // Preconditions
  +        checkNonNull "set1" set1
  +        checkNonNull "set2" set2
  +
  +        set1.Union set2
  +        |> retype
  +
  +    //
       [<CompiledName("OfSeq")>]
       let inline ofSeq source : TagSet<'Tag> =
           // Preconditions are checked by the member.
  
positive.code:         with get () : IntSet =
              IntSet Empty
  
      /// The number of elements in the IntSet.
      member __.Count
          with get () : int =
  
negative.code:     member __.Remove (key : int) : IntSet =
          IntSet (
              PatriciaSet.Remove (uint32 key, trie))
  
      /// Computes the union of two IntSets.
      member __.Union (otherSet : IntSet) : IntSet =
          IntSet (
              PatriciaSet.Merge (trie, otherSet.Trie))
  
      /// The IntSet containing the given element.
      static member Singleton (element : int) : IntSet =
  