Don't use the confusing term "set membership".
diff --git a/Doc/reference/expressions.rst b/Doc/reference/expressions.rst
index 0653910..8652453 100644
--- a/Doc/reference/expressions.rst
+++ b/Doc/reference/expressions.rst
@@ -1061,14 +1061,14 @@
   another one is made arbitrarily but consistently within one execution of a
   program.
 
-The operators :keyword:`in` and :keyword:`not in` test for set membership.  ``x
-in s`` evaluates to true if *x* is a member of the set *s*, and false otherwise.
-``x not in s`` returns the negation of ``x in s``. The set membership test has
-traditionally been bound to sequences; an object is a member of a set if the set
-is a sequence and contains an element equal to that object.  However, it is
-possible for an object to support membership tests without being a sequence.  In
-particular, dictionaries support membership testing as a nicer way of spelling
-``key in dict``; other mapping types may follow suit.
+The operators :keyword:`in` and :keyword:`not in` test for collection
+membership.  ``x in s`` evaluates to true if *x* is a member of the collection
+*s*, and false otherwise.  ``x not in s`` returns the negation of ``x in s``.
+The collection membership test has traditionally been bound to sequences; an
+object is a member of a collection if the collection is a sequence and contains
+an element equal to that object.  However, it make sense for many other object
+types to support membership tests without being a sequence.  In particular,
+dictionaries (for keys) and sets support membership testing.
 
 For the list and tuple types, ``x in y`` is true if and only if there exists an
 index *i* such that ``x == y[i]`` is true.