Classes that override __eq__ also need to define __hash__.
diff --git a/Lib/functools.py b/Lib/functools.py
index ad1cccc..539dc90 100644
--- a/Lib/functools.py
+++ b/Lib/functools.py
@@ -93,4 +93,6 @@
             return mycmp(self.obj, other.obj) >= 0
         def __ne__(self, other):
             return mycmp(self.obj, other.obj) != 0
+        def __hash__(self):
+            raise TypeError('hash not implemented')
     return K