*snip* > As another poster mentioned or hinted at, since "something" may not have > a type yet, there's no way to get the needed object type from that. I > was hoping for something that can't be done without mind reading > interpreters. *snip* I think it's a bit nastier than that. It's not just that you don't know what type to use when the thing could be nil. You also possibly don't know what value to use either. [This seems related to the identity element in a group.] For example, for a multiplication operation on integers, we might want 1 to replace nil. For an addition operation, we would probably prefer 0. To illustrate: I use .magic as the method that you can call on nil that "does the right thing" 1 + 1.magic => 2 1 + nil.magic => 1 # nil.magic => 0 1 * 1.majic => 1 1 * nil.magic => 1 # nil.magic => 1 Which is kind of interesting? :-) Cheers, Benjohn