AnnotType ::= SimpleType {Annotation}
AnnotType ::= SimpleType {Annotation}
ArgType ::= Type
ArgType ::= Type
CompoundType ::= AnnotType {with AnnotType} [Refinement] | Refinement
CompoundType ::= AnnotType {with AnnotType} [Refinement] | Refinement
InfixType ::= CompoundType {id [nl] CompoundType}
InfixType ::= CompoundType {id [nl] CompoundType}
Pattern ::= Pattern1 { |' Pattern1 }
SeqPattern ::= SeqPattern1 { |' SeqPattern1 }
Pattern1 ::= varid :' TypePat
| _' :' TypePat
| Pattern2
SeqPattern1 ::= varid :' TypePat
| _' :' TypePat
| [SeqPattern2]
Patterns ::= Pattern { ,' Pattern }
SeqPatterns ::= SeqPattern { ,' SeqPattern }
SimplePattern ::= varid
| _'
| literal
| XmlPattern
| StableId [TypeArgs] [(' [SeqPatterns] )']
| (' [Patterns] )'
SimpleSeqPattern ::= varid
| _'
| literal
| XmlPattern
| <' xLiteralPattern
| StableId [TypeArgs] [(' [SeqPatterns] )']
| (' [SeqPatterns] )'
SimplePattern ::= varid
| _'
| literal
| XmlPattern
| StableId [TypeArgs] [(' [SeqPatterns] )']
| (' [Patterns] )'
SimpleSeqPattern ::= varid
| _'
| literal
| XmlPattern
| <' xLiteralPattern
| StableId [TypeArgs] [(' [SeqPatterns] )']
| (' [SeqPatterns] )'
XXX: Hook for IDE
SimpleType ::= SimpleType TypeArgs
| SimpleType #' Id
| StableId
| Path .
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
Type ::= InfixType =>' Type
| (' [=>' Type] )' =>' Type
| InfixType [ExistentialClause]
ExistentialClause ::= forSome {' ExistentialDcl {semi ExistentialDcl}} }'
ExistentialDcl ::= type TypeDcl | val ValDcl
TypeArgs ::= [' ArgType {,' ArgType} ]'
TypeArgs ::= [' ArgType {,' ArgType} ]'
Types ::= Type {,' Type}
Types ::= Type {,' Type}
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.