anchor.diff:  
       ok.
   
  +hstring_to_bitstring(L) ->
  +    << <<(hex_to_int(D)):4>> || D <- L >>.
  +
  +hex_to_int(D) when $0 =< D, D =< $9 -> D - $0;
  +hex_to_int(D) when $A =< D, D =< $F -> D - ($A - 10).
  +
  +encode_chars_compact_map(Val, NumBits, {Lb,Limit}) ->
  +    << <<(enc_char_cm(C, Lb, Limit)):NumBits>> || C <- Val >>.
  +
  +enc_char_cm(C0, Lb, Limit) ->
  +    C = C0 - Lb,
  +    if
  +	0 =< C, C < Limit ->
  +	    C;
  +	true ->
  +            error(illegal)
  +    end.
  +
   -undef(BAD).
   
   matched_out_size(Config) when is_list(Config) ->
  
positive.code: -define(BAD_V(E), {'EXIT',{badarg,_}} = (catch << (E) || I <- [1,2,3] >>)).
  
  general_expressions(_) ->
      <<1,2,3>> = << begin <<1,2,3>> end || _ <- [1] >>,
      <<"abc">> = << begin <<"abc">> end || _ <- [1] >>,
      <<1,2,3>> = << begin
  		       I = <<(I0+1)>>,
  		       id(I)
  		   end || <<I0>> <= <<0,1,2>> >>,
      <<1,2,3>> = << I || I <- [<<1,2>>,<<3>>] >>,
      <<1,2,3>> = << (id(<<I>>)) || I <- [1,2,3] >>,
      <<2,4>> = << case I rem 2 of
  		     0 -> <<I>>;
  		     1 -> <<>>
  		 end || I <- [1,2,3,4,5] >>,
      <<2,3,4,5,6,7>> = << << (id(<<J>>)) || J <- [2*I,2*I+1] >> ||
  			  I <- [1,2,3] >>,
      <<1,2,2,3,4,4>> = << if
  			     I rem 2 =:= 0 -> <<I,I>>;
  			     true -> <<I>>
  			 end || I <- [1,2,3,4] >>,
      self() ! <<42>>,
      <<42>> = << receive B -> B end || _ <- [1] >>,
      <<10,5,3>> = << try
  			<<(10 div I)>>
  		    catch _:_ ->
  			    <<>>
  		    end || I <- [0,1,2,3] >>,
  
      %% Failing expressions.
      ?BAD(bad_atom),
  
negative.code: matched_out_size_1(Binary) ->
      << <<X>> || <<S, X:S>> <= Binary>>.
  
  no_generator(_Config) ->
      [<<"abc">>] = [<<(id(<<"abc">>)) || true >>],
      {<<>>} = {<<(id(<<"abc">>)) || false >>},
  
  