Message 289469 - Python tracker
Elliot, did you run the example in a release build or a debug build? I'm wondering why this:
assert(v->ob_type == w->ob_type &&
v->ob_type->tp_richcompare != NULL &&
v->ob_type->tp_richcompare == compare_funcs.key_richcompare);
didn't blow up (in `unsafe_object_compare`).
If that does blow up in a debug build, it suggests "a fix": unconditionally check whether the tp_richcompare slot is the expected value. If not, use `PyObject_RichCompareBool(v, w, Py_LT)` instead.