I found out quite by accident, that if you "include" the following Module:

    module M; def a; puts "weird"; 1; end; end

then you can create some pretty weird expressions:

  p ::  M   .==(::   M::a  )?   :a:   ::   M


or

  p ::M.==(::M::a)?:a: ::M::a.+(a)


Go ahead ... see for yourself what they evaluate too.

Just for fun !

-- shanko