anchor.diff:      let resolveConflict stateIndex term x1 x2 =
           LALRConflict.Create stateIndex term x1 x2 |> conflicts.Add
           x1
  -    match createLALRStates resolveConflict s' kernelItems lookaheads with
  +    match createLALRStates fGetAllProductions fGetFirstSet resolveConflict s' kernelItems lookaheads with
       | theGloriousStateTable when conflicts.Count = 0 ->
           Ok theGloriousStateTable
       | _ -> conflicts |> set |> BuildError.LALRConflict |> Error
  
positive.code:                     addAction term (LALRAction.Shift(uint32 stateToShiftTo))
                  | _ -> ()
              )
              itemSet.Kernel
              |> Seq.filter (fun x -> x.IsAtEnd)
              |> Seq.iter (fun item ->
                  getLookahead item itemSet.Index
                  |> Set.iter (function
                      | Terminal term -> addAction term (LALRAction.Reduce item.Production)
                      | End -> ()
                  )
              )
  
negative.code:             match Seq.tryExactlyOne itemSet.Kernel with
              | Some k when k.IsAtEnd && k.Production.Head = startSymbol ->  Some LALRAction.Accept
              | _ ->
                  closedItem
                  |> Seq.choose (fun item ->
                      if Set.contains End item.Lookahead then
                          Some (LALRAction.Reduce item.Item.Production)
                      else
                          None)
                  |> List.ofSeq
  