anchor.diff:               end,
                Res
        end,Bs1};
  -eval_field({bin_element,Line,E,Size0,Options0}, Bs0, Fun) ->
  +eval_field({bin_element,Anno,E,Size0,Options0}, Bs0, Fun) ->
       {value,V,Bs1} = Fun(E, Bs0),
       {Size1,[Type,{unit,Unit},Sign,Endian]} = 
  -        make_bit_type(Line, Size0, Options0),
  +        make_bit_type(Anno, Size0, Options0),
       {value,Size,Bs} = Fun(Size1, Bs1),
       {fun() -> eval_exp_field1(V, Size, Unit, Type, Endian, Sign) end,Bs}.
   
  
positive.code: eval_field({bin_element, _, {string, _, S}, default, default}, Bs0, _Fun) ->
      Latin1 = [C band 16#FF || C <- S],
      {fun() ->list_to_binary(Latin1) end,Bs0};
  eval_field({bin_element, Line, {string, _, S}, Size0, Options0}, Bs0, Fun) ->
      {Size1,[Type,{unit,Unit},Sign,Endian]} =
          make_bit_type(Line, Size0, Options0),
      {value,Size,Bs1} = Fun(Size1, Bs0),
      {fun() ->
               Res = << <<(eval_exp_field1(C, Size, Unit,
  
negative.code:     {Val,Rest}.
  
  %% Identical to the one in sys_pre_expand.
  make_bit_type(Anno, default, Type0) ->
      case erl_bits:set_bit_type(default, Type0) of
          {ok,all,Bt} -> {{atom,Anno,all},erl_bits:as_list(Bt)};
  	{ok,undefined,Bt} -> {{atom,Anno,undefined},erl_bits:as_list(Bt)};
          {ok,Size,Bt} -> {{integer,Anno,Size},erl_bits:as_list(Bt)};
          {error,Reason} -> erlang:raise(error, Reason, ?STACKTRACE)
      end;
  make_bit_type(_Anno, Size, Type0) -> %Size evaluates to an integer or 'all'
      case erl_bits:set_bit_type(Size, Type0) of
          {ok,Size,Bt} -> {Size,erl_bits:as_list(Bt)};
          {error,Reason} -> erlang:raise(error, Reason, ?STACKTRACE)
  