anchor.diff:      let simplifiedRuleClausePatterns =
           let simplifiedRuleClausePatterns =
               patterns
  -            |> Array.map (fun pattern ->
  -                validateAndSimplifyPattern pattern (macroEnv, badMacros, options))
  +            |> Array.map (fun (originalRuleClauseIndex, pattern) ->
  +                // TODO : Simplify using Choice.Result.map
  +                match validateAndSimplifyPattern pattern (macroEnv, badMacros, options) with
  +                | Choice2Of2 errors ->
  +                    Choice2Of2 errors
  +                | Choice1Of2 pattern ->
  +                    Choice1Of2 (originalRuleClauseIndex, pattern))
   
           // Put all of the "results" in one array and all of the "errors" in another.
           let results = ResizeArray<_> (Array.length simplifiedRuleClausePatterns)
  
positive.code:                     LexerDfaGraph.addEofEdge compiledPatternDfa.InitialState dfaAcceptingState transitions
                  { compiledPatternDfa with
                      Transitions = transitions;
                      RuleClauseFinalStates =
                          // Create a new copy to avoid mutating the old array.
                          // This shouldn't matter, but it's a small array so it doesn't hurt to be safe.
                          compiledPatternDfa.RuleClauseFinalStates
                          |> Array.mapi (fun clauseIndex finalStates ->
                              if int eofAcceptingClause = clauseIndex then
                                  Set.singleton dfaAcceptingState
                              else finalStates);
                      RuleAcceptedByState =
                          compiledPatternDfa.RuleAcceptedByState
                          |> Map.add dfaAcceptingState eofAcceptingClause; }
  
negative.code:             let clause = ruleClauses.[i]
              match clause.Pattern with
              | Pattern pattern ->
                  patterns.Add (
                      (Int32WithMeasure i : RuleClauseIndex),
                      pattern)
              | EndOfFile ->
                  eofClauseIndices <-
                      Set.add (Int32WithMeasure i : RuleClauseIndex) eofClauseIndices
  