typexpr |
::= |
' ident |
|
| |
_ |
|
| |
( typexpr ) |
|
| |
[[?]ident:] typexpr -> typexpr |
|
| |
typexpr { * typexpr }+ |
|
| |
typeconstr |
|
| |
typexpr typeconstr |
|
| |
( typexpr { , typexpr } ) typeconstr |
|
| |
typexpr as ' ident |
|
| |
[ variant-type ] |
|
| |
< [..] > |
|
| |
< method-type { ; method-type } [; ..] > |
|
| |
# class-path |
|
| |
typexpr # class-path |
|
| |
( typexpr { , typexpr } ) # class-path |
|
| |
# typeconstr-path [ tag-list ] |
|
| |
typexpr # typeconstr-path [ tag-list ] |
|
| |
( typexpr { , typexpr } ) # typeconstr-path [ tag-list ] |
method-type |
::= |
method-name : typexpr |
tag-list |
::= |
[> {`tag-name}+ ] |