@@ -33,8 +33,8 @@ The meta object behind
33
33
an object can be obtained with C < $obj.HOW > , where HOW stands for Higher Order
34
34
Workings (or, I < HOW the *%@$ does this work? > ).
35
35
36
- Here the calls with C < .^ > are calls to the meta object, so C < A.^compose > is a
37
- shortcut for C < A.HOW.compose(A) > . The invocant is passed along in the
36
+ Here, the calls with C < .^ > are calls to the meta object, so C < A.^compose > is a
37
+ shortcut for C < A.HOW.compose(A) > . The invocant is passed in the
38
38
parameter list as well, to make it possible to support prototype-style type
39
39
systems, where there is just one meta object (and not one meta object per
40
40
type, as standard Perl 6 does it).
@@ -84,7 +84,7 @@ stable identity indicator.
84
84
85
85
= head2 X < HOW|syntax,HOW >
86
86
87
- The metaclass object: "Higher Order Workings"
87
+ The metaclass object: "Higher Order Workings".
88
88
89
89
= head2 X < WHY|syntax,WHY >
90
90
@@ -93,6 +93,7 @@ The attached Pod value.
93
93
= head2 X < DEFINITE|syntax,DEFINITE >
94
94
95
95
The object has a valid concrete representation.
96
+
96
97
Returns C < True > for instances and C < False > for type objects.
97
98
98
99
= head2 X < VAR|syntax,VAR >
@@ -110,20 +111,21 @@ The presence of a C<Scalar> object indicates that the object is "itemized".
110
111
111
112
B < Note: > this documentation largely reflects the meta object system as
112
113
implemented by the L < Rakudo Perl 6 compiler|http://rakudo.org/ > , since the
113
- L < design document |http://design.perl6.org/ > are very light on details.
114
+ L < design documents |http://design.perl6.org/ > are very light on details.
114
115
115
- For each type declarator key word , such as C < class > , C < role > , C < enum > ,
116
+ For each type declarator keyword , such as C < class > , C < role > , C < enum > ,
116
117
C < module > , C < package > , C < grammar > or C < subset > , there is a separate meta
117
118
class in the C < Metamodel:: > namespace. (Rakudo implements them in the
118
119
C < Perl6::Metamodel:: > namespace, and then maps C < Perl6::Metamodel > to
119
120
C < Metamodel > ).
120
121
121
122
Many of the these meta classes share common functionality. For example roles,
122
- grammars and classes can all contain methods and attributes, and can do roles.
123
+ grammars and classes can all contain methods and attributes, as well as being
124
+ able to do roles.
123
125
This shared functionality is implemented in roles which are composed into the
124
126
appropriate meta classes. For example
125
127
L < role Metamodel::RoleContainer|/type/Metamodel::RoleContainer > implements the
126
- functionality that a type can hold roles, and
128
+ functionality that a type can hold roles and
127
129
L < Metamodel::ClassHOW|/type/Metamodel::ClassHOW > , which is the meta class
128
130
behind the C < class > keyword, does this role.
129
131
0 commit comments