> >> class X; def == o; :great; end; def != o; :horrible; end; end
> => nil
> >> x = X.new
> => #<X:0x419948>
> >> x == 0
> => :great
> >> x != 0
> => :horrible

== and != should not be able to contradict each other.

Is this a bug? I looked at the code and it looks intentional. Should  
it be allowed?