anchor.diff:      {Bs,BBs,Rest}.
   
   %% Almost identical to the one in sys_pre_expand.
  -coerce_to_float({integer,L,I}=E, float) ->
  +coerce_to_float({integer,Anno,I}=E, float) ->
       try
  -	{float,L,float(I)}
  +	{float,Anno,float(I)}
       catch
   	error:badarg -> E;
   	error:badarith -> E
  
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:         _ ->
              done
      end;
  bin_gen_field({bin_element,Anno,{string,SAnno,S},Size0,Options0},
                Bin0, Bs0, BBs0, Mfun, Efun) ->
      {Size1, [Type,{unit,Unit},Sign,Endian]} =
          make_bit_type(Anno, Size0, Options0),
      case catch Efun(Size1, BBs0) of
          {value, Size, _BBs} -> % 
              F = fun(C, Bin, Bs, BBs) ->
                          bin_gen_field1(Bin, Type, Size, Unit, Sign, Endian,
                                         {integer,SAnno,C}, Bs, BBs, Mfun)
                  end,
              bin_gen_field_string(S, Bin0, Bs0, BBs0, F)
      end;
  bin_gen_field({bin_element,Anno,VE,Size0,Options0},
                Bin, Bs0, BBs0, Mfun, Efun) ->
      {Size1, [Type,{unit,Unit},Sign,Endian]} = 
          make_bit_type(Anno, Size0, Options0),
      V = erl_eval:partial_eval(VE),
      NewV = coerce_to_float(V, Type),
      case catch Efun(Size1, BBs0) of
  