in reply to Re^3: Introspection of Moose/Mouse attributes fails to find native trait with `does`
in thread Introspection of Moose/Mouse attributes fails to find native trait with `does`

Second, and it took me a second to notice this, but he’s checking the Attribute MetaObject’s does().

Yeah, and that's a user interface question. I could argue that interpretation both ways, depending on how I felt about metacircularity.

There may not be a Role that is equivalent to that type.

I've said this before, but I'll write it again to clarify for everyone else:

Any declaration of a type which does not imply the existence of a role is broken, in my opinion. A system is allomorphic only if every named class or type implies a role.

With that said, a system doesn't have to be allomorphic to be useful, but a fully allomorphic system has the fewest possible edge cases and the greatest possible flexibility, and that's pretty much exactly what we're after with roles.

(I don't have a formalism to specify the relationship of anonymous classes and anonymous roles because I haven't figured out a good way to specify the identity of an anonymous type. There's an easy and obvious solution but I haven't proven to my satisfaction that it's watertight.)

  • Comment on Re^4: Introspection of Moose/Mouse attributes fails to find native trait with `does`
  • Download Code