For the cases you give, it seems pretty straightforward, but what
about this:
Fixnum===Class #false
Class===Fixnum #true
Should Class be considered a Fixnum just because Fixnum is a Class?
Hm, at least that makes sense. However, it's hard for me to think of
=== as having direction (it doesn't look like it has direction, and
therefore it can be difficult to remember which direction it's
supposed to go sometimes).
Though for some reason it's easier for me to accept that (1..5) === 3
gives true while 3 === (1..5) gives false. I'll have to remember it
that way, and later I'll probably wince when I recall that 5 ===
Fixnum #=> false confused me (assuming that I'm able to recall this,
which I probably won't as my memory is pretty bad. So some day in
the future someone will say to me "This used to confuse you!" and
show me this email and I shall suffer from horror and shock at
evidence of my old ignorance.)
And no, that is not an invitation to approach me one day with this
email in hand
Tim