Gavin Kistner wrote: > irb(main):006:0> foo===Array > => false > > Line 4 confirms what Kent pointed out...but line 6 seems to indicate > that the case statement switching off of the instance itself (which does > work) should not work. Nevermind, I was confusing the appearance of === as a commutative operator with the fact that it's actually a method call. (foo===Array) != (Array===foo) and apparently the latter is the order that is used in a case statement. I can see the reason that Module#=== was thus defined (and the power that the definition enables)...but the principle of most surprise strikes again :) -- (-, /\ \/ / /\/