AnnotType ::= SimpleType {Annotation}
CompoundType ::= AnnotType {with AnnotType} [Refinement]
| Refinement
InfixType ::= CompoundType {id [nl] CompoundType}
SimpleType ::= SimpleType TypeArgs
| SimpleType `#' Id
| StableId
| Path `.' type
| `(' Types `)'
| WildcardType
Type ::= InfixType `=>' Type | `(' [`=>' Type] `)' `=>' Type | InfixType [ExistentialClause] ExistentialClause ::= forSome `{' ExistentialDcl {semi ExistentialDcl}} `}' ExistentialDcl ::= type TypeDcl | val ValDcl
TypeArgs ::= `[' ArgType {`,' ArgType} `]'
Types ::= Type {`,' Type}
(patternContextSensitive: StringAdd).self
(patternContextSensitive: StringFormat).self
(patternContextSensitive: ArrowAssoc[PatternContextSensitive]).x
(Since version 2.10.0) Use leftOfArrow
instead
(patternContextSensitive: Ensuring[PatternContextSensitive]).x
(Since version 2.10.0) Use resultOfEnsuring
instead
Methods which implicitly propagate the context in which they were called: either in a pattern context or not. Formerly, this was threaded through numerous methods as boolean isPattern.