Make grammar item namings clearer.
@@ -254,9 +254,10 @@ TABLE OF CONTENTS:
3.4. Packages and Uses
+ package: "pkg" ident = decl* ";;"
+ use: bareuse | quoteuse
bareuse: use ident
quoteuse: use "<quoted string>"
- pkgdef: "pkg" ident = decl* ";;"
There are two keywords for module system. 'use' is the simpler
@@ -487,7 +488,7 @@ TABLE OF CONTENTS:
4.5. Defined Types:
- tydefn: "type" ident "(" params ")" = type
+ tydef: "type" ident "(" params ")" = type
params: typaram ("," typaram)*
Users can define new types based on other types. These defined
@@ -509,7 +510,7 @@ TABLE OF CONTENTS:
traittypes: typaram ["->" type ("," type)*]
traitbody: (name ":" type)*
- impldef: "impl" ident imptypes "=" implbody
+ implstmt: "impl" ident imptypes "=" implbody
traittypes: type ["->" type ("," type)*]
traitbody: (name [":" type] "=" expr)*
@@ -525,10 +526,6 @@ TABLE OF CONTENTS:
behave identically from the type system perspective into a small set
of classes. and define the constraints that they require.
- Type inference in Myrddin operates as a bottom up tree walk, applying
- the type equations for the operator to its arguments. It begins by
- initializing all leaf nodes with the most specific known type for them
- as follows:
5. VALUES AND EXPRESSIONS
