|
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 |
::= |
type-param |
| |
| |
( type-param { , type-param } ) |
|
type-param |
::= |
' ident |
| |
| |
+ ' ident |
| |
| |
- ' ident |
|
constr-decl |
::= |
constr-name |
| |
| |
constr-name of typexpr |
|
field-decl |
::= |
field-name : poly-typexpr |
| |
| |
mutable field-name : poly-typexpr |
|
type-constraint |
::= |
constraint ' ident = typexpr |