anchor.diff:  	 ann_c_map_pair/4
        ]).
   
  --export_type([c_binary/0, c_call/0, c_clause/0, c_cons/0, c_fun/0, c_literal/0,
  -              c_module/0, c_tuple/0, c_values/0, c_var/0, cerl/0, var_name/0]).
  +-export_type([c_binary/0, c_bitstr/0, c_call/0, c_clause/0, c_cons/0, c_fun/0,
  +	      c_literal/0, c_map_pair/0, c_module/0, c_tuple/0,
  +	      c_values/0, c_var/0, cerl/0, var_name/0]).
   
   %% HiPE does not understand Maps
   %% (guard functions is_map/1 and map_size/1 in ann_c_map/3)
   -compile(no_native).
  -%%
  -%% needed by the include file below -- do not move
  -%%
  --type var_name() :: integer() | atom() | {atom(), integer()}.
   
   -include("core_parse.hrl").
   
  
positive.code:     %% we get exactly one element, we generate a 'c_cons' call
      %% instead of 'make_list' to reconstruct the node.
      case split_list(Node) of
  	{[H], none} ->
  	    meta_call(c_cons, [meta(H), meta(c_nil())]);
  	{[H], Node1} ->
  	    meta_call(c_cons, [meta(H), meta(Node1)]);
  	{L, none} ->
  	    meta_call(make_list, [make_list(meta_list(L))]);
  	{L, Node1} ->
  	    meta_call(make_list,
  		      [make_list(meta_list(L)), meta(Node1)])
  
negative.code:     case type(Node) of
  	cons when A =:= [] ->
  	    split_list(cons_tl(Node), [cons_hd(Node) | L]);
  	_ ->
  	    {lists:reverse(L), Node}
      end.
  