anchor.diff:  %% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   %% THE SOFTWARE.
   %%
  -%%
  +
   %% @doc Yet another JSON (RFC 4627) library for Erlang. mochijson2 works
   %%      with binaries as strings, arrays as lists (without an {array, _})
   %%      wrapper and it only knows how to decode UTF-8 (and ASCII).
  -%% 
  +%%
   %% We include mochijson2 from couchdb since it make sense to use CouchDB
   %% to this file. We also include mochinum. 
   %% 
  -
   
   -module(couchbeam_mochijson2).
   -author('bob@mochimedia.com').
  
positive.code: %% @author Bob Ippolito <bob@mochimedia.com>
  %% @copyright 2007 Mochi Media, Inc.
  %% 
  %% Permission is hereby granted, free of charge, to any person obtaining a copy
  %% of this software and associated documentation files (the "Software"), to deal
  %% in the Software without restriction, including without limitation the rights
  
negative.code:     case B of
          <<_:O/binary, ?Q, _/binary>> ->
              O;
          <<_:O/binary, $\\, _/binary>> ->
              {escape, O};
          <<_:O/binary, C1, _/binary>> when C1 < 128 ->
              tokenize_string_fast(B, 1 + O);
          <<_:O/binary, C1, C2, _/binary>> when C1 >= 194, C1 =< 223,
                  C2 >= 128, C2 =< 191 ->
              tokenize_string_fast(B, 2 + O);
          <<_:O/binary, C1, C2, C3, _/binary>> when C1 >= 224, C1 =< 239,
                  C2 >= 128, C2 =< 191,
                  C3 >= 128, C3 =< 191 ->
              tokenize_string_fast(B, 3 + O);
          <<_:O/binary, C1, C2, C3, C4, _/binary>> when C1 >= 240, C1 =< 244,
                  C2 >= 128, C2 =< 191,
                  C3 >= 128, C3 =< 191,
                  C4 >= 128, C4 =< 191 ->
              tokenize_string_fast(B, 4 + O);
          _ ->
              throw(invalid_utf8)
      end.
  
  tokenize_string(B, S=#decoder{offset=O}, Acc) ->
  