TSa wrote:
you wrote:
> I think I found the core of the issue here; it has to do with the
> differences between roles and mixins, with an analogous difference
> between compile-time composition and runtime composition. Details
> follow.
I think we are basically through the discussion. Thank you for your
patience so far. It's interesting to note that you make a distinction
between mixins and roles. I think of roles as being mixins.
I'm only making the distinction based on a very restrictive definition
of "mixin" - and I'm doing so largely to illustrate the conceptual
differences between compile-time and runtime composition.
> Just to clarify some terminology: in the above statement,
> 'ComposedClass' composes 'Role', and 'ComposedClass' inherits from
> 'UncomposedClass'. Conversely, 'Role' is composed into
> 'ComposedClass'.
This is still not how I think of it. I'm more thinking of the
composition process as having the *same* class in a pre- and a
post-composition state.
I see it now. I still don't agree with using it as the default
approach; but I see it.
As you describe it, the current compile-time composition lets
the role define a type bound of the composition result in the
sense that instances of the class do the role.
Note that because perl 6 uses a prototype approach to
object-orientation, the class itself counts as an instance of the
class.
--
Jonathan "Dataweaver" Lang