> Still, it bothers me a little that x==y does not always > imply x===y. But I will just have to get used to that... > Actually I have trouble remembering what === means -- > whether to say x === y or y === x, which are of course > not the same. You may then do like I do in Perl: def foo(arg) ({ String => proc { print " arg is a string\n" }, Array => proc { print " arg is an array\n" }, Hash => proc { print " arg is a hash\n" }, }[arg] || proc { print " arg is unknown\n" } ).call end matju