anchor.diff:                              | Symbol.Terminal _ -> ()
                               | Symbol.Nonterminal ithSymbolNontermId ->
                                   for j = i + 1 to k do
  -                                    if i = k ||
  -                                        // OPTIMIZE : Array slices are slow -- find another way to implement this.
  -                                        production.[i + 1 .. k]
  -                                        |> Array.forall (function
  -                                            | Symbol.Terminal _ ->
  -                                                false
  -                                            | Symbol.Nonterminal nontermId ->
  -                                                Map.find nontermId nullable) then
  -
  +                                    if i = k || allNullableInSlice (production, i + 1, k, nullable) then
                                           /// The FOLLOW set for the i-th symbol in the production.
                                           let ithSymbolFollowSet = Map.find ithSymbolNontermId followSets
   
  
positive.code:                                             updated <- true
                                              followSets <- Map.add ithSymbolNontermId ithSymbolFollowSet' followSets
  
                                      if i + 1 = j ||
                                          // OPTIMIZE : Array slices are slow -- find another way to implement this.
                                          production.[i + 1 .. j - 1]
                                          |> Array.forall (function
                                              | Symbol.Terminal _ ->
                                                  false
                                              | Symbol.Nonterminal nontermId ->
                                                  Map.find nontermId nullable) then
  
                                          /// The FOLLOW set for the i-th symbol in the production.
                                          let ithSymbolFollowSet = Map.find ithSymbolNontermId followSets
  
  
negative.code:                                         let ithSymbolFollowSet' =
                                              /// The FOLLOW set for the current nonterminal.
                                              let nontermFollowSet = Map.find nontermId followSets
                                              // Merge it with the FOLLOW set for the i-th symbol.
                                              Set.union ithSymbolFollowSet nontermFollowSet
  
                                          // Set the 'updated' flag iff the i-th symbol's FOLLOW set
  