After a brief(!?) discussion with Autrijus on the subject of multimethods, it would appear that Parrot's obligation WRT their dispatch is pretty much two opcodes calling two vtable functions which must be implemented by sub-like objects:
1. is_mpd - Does this object have Multiple Personality Disorder? Returns true if this object is merely a front for multi subs. Returns false if it's a front for only a signle sub, __even_if_the_sub_is_declared_'multi'__. 2. limited_mpd - Takes as its parameter an Array PMC containing integers representing parameter types. Returns either a new sub-like PMC representing all the alternatives that match the given parameter types, or a Null PMC. (OK, OK, the actual vtable methods probably won't be called "mpd", but _you_ try talking about multisubs without making MPD jokes.) These functions are constructed in such a way as to allow multiple refinement steps as required for multiple-colon multisub dispatch and particularly for lazy parameters to multisubs. PS: If the distance calculations don't already treat Any as being the same distance to all actual types, they should. -- Chip Salzenberg <[EMAIL PROTECTED]>