compar.c:55
static VALUE
cmp_equal(x, y)
    VALUE x, y;
{
    int c;

    if (x == y) return Qtrue;

    c  = rb_funcall(x, cmp, 1, y);
    if (NIL_P(c)) return Qnil;
    if (c == INT2FIX(0)) return Qtrue;
    if (rb_cmpint(c, x, y) == 0) return Qtrue;
    return Qfalse;
}
