anchor.diff:  determine_token_type(Chars, Line, Col, Delta,
     #yaml_parser{chars_len = Len, raw_eos = false} = Parser)
     when (Len - Delta) < 4 ->
  -    return(Chars, Line, Col, Delta, Parser);
  +    suspend_parsing(Chars, Line, Col, Delta, Parser,
  +      fun determine_token_type/5);
   
   %% BOM, before a document only!
   determine_token_type([C | Rest], Line, Col, Delta,
     #yaml_parser{doc_started = false} = Parser)
     when ?IS_BOM(C) ->
       {Col1, Delta1} = next_col(Col, Delta, 1),
  -    next_state(Rest, Line, Col1, Delta1, Parser, fun find_next_token/5);
  +    find_next_token(Rest, Line, Col1, Delta1, Parser);
   determine_token_type([C | Rest], Line, Col, Delta,
     #yaml_parser{doc_started = true} = Parser)
     when ?IS_BOM(C) ->
  
positive.code: -define(IS_HIGH_SURROGATE(C), (C >= 16#d800 andalso C =< 16#dbff)).
  -define(IS_LOW_SURROGATE(C),  (C >= 16#dc00 andalso C =< 16#dfff)).
  
  -define(CURSOR_LINE(P),   P#yaml_parser.line).
  -define(CURSOR_COLUMN(P), P#yaml_parser.col).
  
  -define(MISSING_ENTRY(S), (
      S#yaml_parser.pending_entry andalso
      S#yaml_parser.last_tag == undefined
  
negative.code:     },
      Parser6 = queue_token(Parser5, Token),
      {Col1, Delta1} = next_col(Col, Delta, 1),
      find_next_token(Rest, Line, Col1, Delta1, Parser6);
  parse_flow_collection_end(Chars, Line, Col, Delta,
    #yaml_parser{cur_coll = #fcoll{kind = Expected}} = Parser, Kind) ->
      %% Closing a different-type collection.
  