~= (complement assign) operator
          
          The right-associative, binary infix ~= operator is used to compute the
          complement of its left-hand operand in its right-hand operand, assigning the
          result to the left-hand operand.
Usage
void m<Dog>(Set<Dog> dogs, Set<Dog> blackDogs) 
  given Dog satisfies Object {
    variable Set<Dog> nonBlackDogs = dogs;
    nonBlackDogs ~= blackDogs;
}
Description
Definition
The ~ operator is defined as follows:
lhs = lhs ~ rhs
See the language specification for more details.
Polymorphism
The ~= operator is polymorphic.
The ~ in the definition is the complement operator
          which depends on the Set interface.
Type
The result type of the ~= operator is a Set with the same element type as
          the left hand operand's element type.
See also
- 
~(complement) operator
- Set
- set operators in the language specification
- operator precedence in the language specification
- Operator polymorphism