anchor.diff:                  }
               | _ -> None
   
  -        let readProduction fSymbol =
  +        let readProduction fSymbol index =
               let readChildrenSymbols =
                   (function | UInt16 x :: xs -> x |> fSymbol |> Option.map (fun x -> x, xs) | _ -> None)
                   |> readToEnd true
               function
  -            | UInt16 index :: UInt16 headIndex :: Empty :: xs -> maybe {
  +            | UInt16 headIndex :: Empty :: xs -> maybe {
                   let! headSymbol = fSymbol headIndex
                   let! symbols = readChildrenSymbols xs
  -                return {Index = uint32 index; Head = headSymbol; Handle = symbols}
  +                return {Index = index; Head = headSymbol; Handle = symbols}
                   }
               | _ -> None
   
  
positive.code:                     }
              | _ -> None
  
          let readCharSet =
              let readRanges =
                  function
                  | UInt16 start :: UInt16 theEnd :: xs ->
  
negative.code:                 |> readToEnd false
                  >> Option.map Map.ofSeq
              function
              | Empty :: xs -> readLALRAction xs |> Option.map (fun actions -> {Index = index; Actions = actions})
              | _ -> None
  
  
  