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 |