HaloO, Daniel Ruoso wrote:
You're taking it backwards, it's not the type checker that is aware of that, but each object's metamodel. The metamodel protocol is just the "do you 'Dog'?" thing.
Backwards in the sequence of checks? That is we check emulation first, then class inheritance and then role doing? Or do you mean backwards in the sense that the priority is with the object somehow? But note that I regard the objects as the passive part in an object system and the system as the active part. An object checks nothing, it is checked. I understand that you implement Perl 6 with a fully OO system. But the "all objects are equal" doesn't work out. You need some Orwellians which are "more equal". The type-checker is one of these. Of course there can be more than one checker but in a scope there's exactly one in charge at any given point in time. Other Orwellians are the compiler, the namespace manager, the grammar engine, the dispatcher etc. Regards, TSa. -- "The unavoidable price of reliability is simplicity" -- C.A.R. Hoare "Simplicity does not precede complexity, but follows it." -- A.J. Perlis 1 + 2 + 3 + 4 + ... = -1/12 -- Srinivasa Ramanujan