anchor.diff:              {tyVars = tyVars; capVars = capVars})
   
   // capExpr
  -let capExpr = attempt capOpp.ExpressionParser
  +let capExpr = capOpp.ExpressionParser
   
   do
       let capVar = pos id |>> CapacityNameExpr |> pos
  
positive.code:     let unitPattern = skipString "()" |> pos |>> MatchUnit |> pos
      let parensPattern = betweenChar '(' pattern ')'
      let tuplePattern = betweenChar '(' (separatedList pattern ',') ')' |> pos |>> MatchTuple |> pos
      patternRef := choice (List.map attempt [intPattern; floatPattern; truePattern;
                            falsePattern; valConPattern; valConModQualPattern;
                            underscorePattern; recordPattern; recordModQualPattern; unitPattern;
                            parensPattern; tuplePattern; varPattern])
  
  // leftRecursiveLeftAssign
  let leftRecursiveLeftAssign =
  
negative.code: let (pattern, patternRef) = createParserForwardedToRef()
  
  let opp = new OperatorPrecedenceParser<PosAdorn<Expr>, Position, unit>()
  let expr = opp.ExpressionParser
  
  let capOpp = new OperatorPrecedenceParser<PosAdorn<CapacityExpr>, Position, unit>()
  let typOpp = new OperatorPrecedenceParser<PosAdorn<TyExpr>, Position, unit>()
  