Are you using Moose to analyse the Magritte system? Moose has its own mailing list.
Magritte uses a lot of the patterns from the gang of four book, and names classes
(and a few packages) after the patterns.
Magritte is a good example of a framework with high essential complexity
and low accidental complexity. It is difficult to understand because it solves
(difficult) problems at a high abstraction level. The elimination of duplication
has been done rather well.
If you want to use Magritte for web development, you might want to take a look
at the extensions in QCMagritte.
MABasicObject overrides GRObject class side basicErrorClass method.
Magritte has to work in multiple Smalltalk implementations. Grease helps with that.
Having Magritte objects inherit from GRObject allows platform-specific overrides
to be applied.
The role of MAAccessorMock isn’t clear to me either. It has no references and removing it
doesn’t make any test fail. It could of course be that references/subclasses are only
defined
in packages not loaded by default. More likely is perhaps that it was used in an earlier
version of the framework or tried out at a certain point in time and not removed when no
longer
needed. You could find out by browsing earlier versions of the Magritte packages.
Stephan