Quiz: what will happen when the following code is run[*]? ================= class Trait { fun void announce() { <<< "I am generic." >>>; } fun void invoke() { announce(); } } class Legacy extends Trait { fun void announce() { <<< "I am legacy." >>>; } } class Lunacy extends Trait { public void announce() { <<< "I am lunacy." >>>; } } (new Legacy).invoke(); (new Lunacy).invoke(); ================= If you predict that it prints: "I am legacy." : (string) "I am lunacy." : (string) then here's a hint: there's a typo in the definition of Lunacy's announce() method where it says "public void announce()..." instead of "fun void announce()...". If you predict that it gets a compiler error when it encounters the typo, well, you'd be wrong there as well. What happens instead is that it compiles without any error messages, and the result is: "I am legacy." : (string) "I am generic." : (string) It took me a LONG time to find this one (and an even longer time to boil it down to a succinct example). Will the powers that be please take this as a request to beef up the parser? Thanks. - Rob [*] in particular, chuck v 1.2.1.3 mac os x : intel. I'm guessing that this is platform independent, though...