 		:	set.filter { self.contains($0) }
 	}
 
-	/// Returns a new set with all elements from the receiver which are not contained in `set`.
-	public func difference(set: Set) -> Set {
+	/// Returns the relative complement of `set` in `self`.
+	///
+	/// This is a new set with all elements from the receiver which are not contained in `set`.
+	public func complement(set: Set) -> Set {
 		return filter { !set.contains($0) }
 	}
 


/// Returns a new set with all elements from `set` which are not contained in `other`.
public func - <Element> (set: Set<Element>, other: Set<Element>) -> Set<Element> {
	return set.difference(other)
}

/// Removes all elements in `other` from `set`.
public func -= <Element> (inout set: Set<Element>, other: Set<Element>) {
	set = set.difference(other)
}




	/// True iff the receiver is a subset of (is included in) `set`.
	public func subset(set: Set) -> Bool {
		return complement(set) == Set()
	}

	/// True iff the receiver is a subset of but not equal to `set`.
