Fixnum is not an instance of Fixnum. Compare:

------------------------------------------------------------- Object#===
      obj === other   => true or false

      From Ruby 1.8
------------------------------------------------------------------------
      Case Equality---For class Object, effectively the same as calling
      #==, but typically overridden by descendents to provide meaningful
      semantics in case statements.

------------------------------------------------------------- Module#===
      mod === obj    => true or false

      From Ruby 1.8
------------------------------------------------------------------------
      Case Equality---Returns true if anObject is an instance of mod or
      one of mod's descendents. Of limited use for modules, but can be
      used in case statements to classify objects by class.

-- 
       vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407