anchor.diff:              | (true, _), (true, _) -> CannotChoose DifferentOperatorGroup
               | (true, _), (false, _) | (false, _), (true, _) -> CannotChoose PartialPrecedenceInfo
               | (false, _), (false, _) -> CannotChoose NoPrecedenceInfo
  -        | _ -> CannotChoose NoPrecedenceInfo
  +        | ValueSome _, ValueNone | ValueNone, ValueSome _ -> CannotChoose PartialPrecedenceInfo
  +        | ValueNone, ValueNone -> CannotChoose NoPrecedenceInfo
  
positive.code:         |> Seq.map (fun x -> x.ResolvesReduceReduceConflict)
          |> Array.ofSeq
  
      override _.ResolveShiftReduceConflict (Terminal(shiftTerminalIdx, _)) {Index = reduceProductionIdx} =
          match terminalMap.TryGetValue shiftTerminalIdx, productionMap.TryGetValue reduceProductionIdx with
          | (true, termObj), (true, prodObj) ->
              match groupLookup.TryGetValue termObj, groupLookup.TryGetValue prodObj with
              | (true, termGroup), (true, prodGroup) when termGroup = prodGroup ->
                  let group = precInfoLookups.[termGroup]
  
negative.code: // Copyright (c) 2020 Theodore Tsirpanis
  //
  // This software is released under the MIT License.
  // https://opensource.org/licenses/MIT
  
  