anchor.diff:  %%% Adapted for binary strings and data by Marc Worrell
   
   %%% Copyright 2002-2003 Joe Armstrong.
  -%%% Copyright 2013 Marc Worrell. 
  +%%% Copyright 2013 Marc Worrell.
   %%%
   %%% All rights reserved.
   %%%
  
positive.code: encode_string(S) -> [$",add_string(S, $"), $"].
  encode_atom(X)   -> [$',add_string(atom_to_list(X), $'), $'].
  encode_binary(X) -> [integer_to_list(size(X)), $~,X,$~].
      
  do_encode(X, Dict) when is_atom(X); is_integer(X); is_binary(X) ->
      case dict:find(X, Dict) of
      {ok, Y} ->
  
negative.code:         _ ->
              decode1(T, TS, Dict, MaxSize)
      end;
  get_stuff(<<$%,T/binary>>, $%, _L, Stack, Dict, MaxSize)  ->
      decode1(T, Stack, Dict, MaxSize);
  get_stuff(<<H,T/binary>>, Stop, L, Stack, Dict, MaxSize) ->
      get_stuff(T, Stop, <<L/binary, H>>, Stack, Dict, MaxSize);
  get_stuff(<<>>, Stop, L, Stack, Dict, MaxSize) ->
      {more, fun(I) ->
             get_stuff(I, Stop, L, Stack, Dict, MaxSize) end}.
  
  collect_binary(0, T, L, Stack, Dict, MaxSize) ->
  