From: stephenT Date: 2008-02-02T23:39:58+09:00 Subject: Re: Gedankenexperiment on method duck type safety The first thing that comes to mind, and this may say more about the oddities of my mind and lack of any real cs training, is that part of what you want is, that once you've identified a duck you(or the runtime system) want to 'know' about ducks. If you have another animal you want to be able to: 1. ask is this a duck - does it do the same things that the known duck does? 2. you may want to 'know' that this is also a duck - automatic subclassing and extraction of commonalities. 3. you may want to get a duck and do something with it (last time I caught a duck a took it into a bar just to see what would happen) I guess you could extend the base object to include a 'type manager' to which you could add type identified instances and build, dynamically, the meaning of a particular type from the instances. You could also validate or test instances against your types - imagine getting the response 90% confident that it's a duck, 60% confident that it's a chicken, 1% dog. Slightly askew of the point: In the run time context is it more important to know if 'this' thing quacks and then get it to quack (point to point message) or do you just need something(s) to quack (broadcast message). Not more important in general, but this might be an important questions to ask in the initial design.