Subject: | explanation of metaclass compatibility in Class::MOP pod |
The Class::MOP pod explains upwards and downwards metaclass compatibility.
Upwards metaclass compatibility is explained as follows:
"Upwards metaclass compatibility means that the metaclass of a given class is either the same as (or a subclass of) all of the class's ancestors."
It would be more correct to say:
"Upwards metaclass compatibility means that the metaclass of a given class is either the same as (or a subclass of) all of the class's ancestors metaclasses."
Downwards metaclass compatibility is explained as follows:
"Downward metaclass compatibility means that the metaclasses of a given class's ancestors are all the same as (or a subclass of) that metaclass."
This explanation is difficult to understand, and seems to be inconsistent with what is written in reference "Uniform and safe metaclass composition".
I would suggest to rephrase it as something like:
"Downwards metaclass compatibility means that an instance of a given metaclass is either the same as (or a subclass of) all of the metaclass's ancestors instances."