anchor.diff:      binary_skip_bytes(B, L, 0, []).
   
   %% @private
  +-spec binary_skip_bytes(binary(), [non_neg_integer()], non_neg_integer(), iolist()) -> binary().
   binary_skip_bytes(B, [], _N, Acc) ->
       iolist_to_binary(lists:reverse([B | Acc]));
   binary_skip_bytes(<<_, RestB/binary>>, [N | RestL], N, Acc) ->
  
positive.code:       2#10:2, B1:6,
        2#10:2, B0:6>>.
  
  %% @spec valid_utf8_bytes(B::binary()) -> binary()
  %% @doc Return only the bytes in B that represent valid UTF-8. Uses
  %%      the following recursive algorithm: skip one byte if B does not
  %%      follow UTF-8 syntax (a 1-4 byte encoding of some number),
  
negative.code: valid_utf8_bytes(B) when is_binary(B) ->
      binary_skip_bytes(B, invalid_utf8_indexes(B)).
  
  %% Internal API
  
  -spec binary_skip_bytes(binary(), [non_neg_integer()]) -> binary().
  %% @doc Return B, but skipping the 0-based indexes in L.
  binary_skip_bytes(B, []) ->
      B;
  