type-definition |
::= |
type typedef { and typedef } |
typedef |
::= |
[type-params] typeconstr-name [type-information] |
type-information |
::= |
[type-equation] [type-representation] { type-constraint } |
type-equation |
::= |
= typexpr |
type-representation |
::= |
= constr-decl { | constr-decl } |
|
| |
= { field-decl { ; field-decl } } |
type-params |
::= |
' ident |
|
| |
( ' ident { , ' ident } ) |
constr-decl |
::= |
cconstr-name |
|
| |
ncconstr-name of typexpr |
field-decl |
::= |
field-name : typexpr |
|
| |
mutable field-name : typexpr |
type-constraint |
::= |
constraint ' ident = typexpr |