anchor.diff:                      addAction term (LALRAction.Shift(uint32 stateToShiftTo))
                   | _ -> ()
               )
  -            itemSet.Kernel
  -            |> Seq.filter (fun x -> x.IsAtEnd)
  -            |> Seq.iter (fun item ->
  -                getLookahead item itemSet.Index
  +            closedItem
  +            |> List.iter (fun item ->
  +                item.Lookahead
                   |> Set.iter (function
  -                    | Terminal term -> addAction term (LALRAction.Reduce item.Production)
  +                    | Terminal term -> addAction term (LALRAction.Reduce item.Item.Production)
                       | End -> ()
                   )
               )
  
positive.code:         |> Seq.iter (fun itemSet ->
              itemSet.Kernel
              |> Set.iter (fun item ->
                  let closure = closure1 fGetAllProductions fGetFirstSet item hashTerminalSet
                  closure
                  |> Map.iter (fun closureItem la ->
                      if not closureItem.IsAtEnd then
                          match itemSet.Goto.TryGetValue(closureItem.CurrentSymbol) with
                          | true, gotoIdx ->
  
negative.code:                             if la.Contains(hashTerminal) then
                                  propagate.Add((item, itemSet.Index), (gotoKernel, gotoIdx)) |> ignore
                              spontaneous.AddRange((gotoKernel, gotoIdx), Seq.filter ((<>) hashTerminal) la) |> ignore
                          | false, _ -> ())))
          MultiMap.freeze spontaneous, MultiMap.freeze propagate
  
      let lookaheads = MultiMap.create()
      // The next line assumes the first item set's kernel contains only
      // the start production which spontaneously generates an EOF symbol by definition.
      lookaheads.Add((itemSets.[0].Kernel.MinimumElement, 0), End) |> ignore
      spontaneous |> Map.iter (fun k la -> lookaheads.AddRange(k, la) |> ignore)
      let mutable changed = true
      while changed do
          changed <- false
  