anchor.diff:          let symbol, tokenizerState =
               // If the buffer contains any symbols, return the next symbol in
               // the buffer; otherwise, try to read a character from the symbol stream.
  -            match tokenizerState.Buffer with
  -            | [] ->
  +            if Queue.isEmpty tokenizerState.Buffer then
                   let symbol =
                       if symbolEnumerator.MoveNext () then
                           Some symbolEnumerator.Current
                       else None
   
                   symbol, tokenizerState
  -
  -            | symbol :: buffer ->
  +            else
  +                let symbol, buffer = Queue.dequeue tokenizerState.Buffer
                   Some symbol, { tokenizerState with Buffer = buffer; }
   
           match symbol with
  
positive.code:                     yield! tokenize symbolEnumerator tokenizerState
  
              | Some transitionTarget ->
                  // If the current DFA state is a final (accepting) state,
                  // mark it as the last final state.
                  let (), tokenizerState =
  
negative.code: 
              match transitionTarget with
              | None ->
                  // Add this symbol to the buffer so it will be reprocessed.
                  let tokenizerState =
                      { tokenizerState with
                          Buffer = Queue.enqueue symbol tokenizerState.Buffer; }
  
                  // If the current DFA state is a final (accepting) state,
                  // accept the current token.
                  match Map.tryFind tokenizerState.CurrentState dfa.FinalStates with
  