Today on #perl6, Audrey, Stevan and I were talking about $repr. A tangent arose where Audrey said that the difference between class methods and instance methods was simply whether or not the body contained an attribute access.
Is this true? If it is, then I think it violates polymorphism as demonstrated by the following: class Dog { method tail { "brown and short" } }; class Chihuahua is Dog { has $.color; method tail { $.color _ " and short" } }; You can say Dog.tail, Dog.new.tail, Chihuahua.new.tail, but not Chihuahua.tail. That's extremely counter-intuitive. I think that class methods should be explicitly defined as class methods and you cannot call a class method upon an instance, just as you cannot call an instance method upon a class. Plus, this should be determinable (for the most part) at compile time, which is a bonus, imho. Thanks, Rob