| typexpr | ::= | ' ident |
| | | _ | |
| | | ( typexpr ) | |
| | | typexpr -> typexpr | |
| | | typexpr { * typexpr }+ | |
| | | typeconstr | |
| | | typexpr typeconstr | |
| | | ( typexpr { , typexpr } ) typeconstr | |
| | | typexpr as ' ident | |
| | | < [..] > | |
| | | < method-type { ; method-type } [; ..] > | |
| | | # class-path | |
| | | typexpr # class-path | |
| | | ( typexpr { , typexpr } ) # class-path | |
| method-type | ::= | method-name : typexpr |
| Operator | Associativity |
| Type constructor application | -- |
| * | -- |
| -> | right |
| as | -- |