AnnotType ::= SimpleType {Annotation}ArgType ::= Type
CompoundType ::= AnnotType {with AnnotType} [Refinement]
| RefinementInfixType ::= CompoundType {id [nl] CompoundType}Pattern ::= Pattern1 { `|' Pattern1 }
SeqPattern ::= SeqPattern1 { `|' SeqPattern1 }Pattern1 ::= varid `:' TypePat
| `_' `:' TypePat
| Pattern2
SeqPattern1 ::= varid `:' TypePat
| `_' `:' TypePat
| [SeqPattern2]Pattern2 ::= varid [ @ Pattern3 ]
| Pattern3
SeqPattern2 ::= varid [ @ SeqPattern3 ]
| SeqPattern3Pattern3 ::= SimplePattern
| SimplePattern {Id [nl] SimplePattern}Patterns ::= Pattern { `,' Pattern }
SeqPatterns ::= SeqPattern { `,' SeqPattern }SimplePattern ::= varid
| `_'
| literal
| XmlPattern
| StableId /[TypeArgs]/ [`(' [Patterns] `)']
| StableId [`(' [Patterns] `)']
| StableId [`(' [Patterns] `,' [varid `@'] `_' `*' `)']
| `(' [Patterns] `)'XXX: Hook for IDE
SimpleType ::= SimpleType TypeArgs
| SimpleType `#' Id
| StableId
| Path `.' type
| `(' Types `)'
| WildcardTypeType ::= InfixType `=>' Type | `(' [`=>' Type] `)' `=>' Type | InfixType [ExistentialClause] ExistentialClause ::= forSome `{' ExistentialDcl {semi ExistentialDcl}} `}' ExistentialDcl ::= type TypeDcl | val ValDcl
TypeArgs ::= `[' ArgType {`,' ArgType} `]'Types ::= Type {`,' Type}(seqContextSensitive: StringAdd).self
(seqContextSensitive: StringFormat).self
(seqContextSensitive: ArrowAssoc[SeqContextSensitive]).x
(Since version 2.10.0) Use leftOfArrow instead
(seqContextSensitive: Ensuring[SeqContextSensitive]).x
(Since version 2.10.0) Use resultOfEnsuring instead
Methods which implicitly propagate whether the initial call took place in a context where sequences are allowed. Formerly, this was threaded through methods as boolean seqOK.