diff --git a/content/clause-interleaving.md b/content/clause-interleaving.md index 2c278b61..b35c3bdf 100644 --- a/content/clause-interleaving.md +++ b/content/clause-interleaving.md @@ -103,14 +103,13 @@ It provides the best of all worlds: ### Specification We amend the syntax of def parameter clauses as follows: - ~~~ DefDcl ::= DefSig ‘:’ Type DefDef ::= DefSig [‘:’ Type] ‘=’ Expr -DefSig ::= id [DefParamClauses] [DefImplicitClause] -DefParamClauses ::= DefParamClauseChunk {DefParamClauseChunk} -DefParamClauseChunk ::= [DefTypeParamClause] TermOrUsingParamClause {TermOrUsingParamClause} -TermOrUsingParamClause ::= DefTermParamClause +DefSig ::= id [DefParamClauses] [DefImplicitClause] -- and two DefTypeParamClause cannot be adjacent +DefParamClauses ::= DefParamClause { DefParamClause } +DefParamClause ::= DefTypeParamClause + | DefTermParamClause | UsingParamClause DefTypeParamClause ::= [nl] ‘[’ DefTypeParam {‘,’ DefTypeParam} ‘]’ DefTypeParam ::= {Annotation} id [HkTypeParamClause] TypeParamBounds