ES6 <: ES5 {
  AssignmentExpression
    := ArrowFunction
     | LeftHandSideExpression AssignmentOperator AssignmentExpression -- assignment
     | ConditionalExpression

  ArrowFunction = ArrowParameters #(spacesNoNL "=>") ConciseBody

  ConciseBody = ~"{" AssignmentExpression  -- noBraces
              | "{" FunctionBody "}"       -- withBraces

  ArrowParameters = BindingIdentifier  -- unparenthesized
                  | CoverParenthesizedExpressionAndArrowParameterList

  BindingIdentifier = identifier  // TODO: Implement this properly.

  CoverParenthesizedExpressionAndArrowParameterList
    = "(" Expression ")"           -- expression
    | "(" ")"                      -- parens
    | "(" FormalParameterList ")"  -- params
}
