anchor.diff:      {CMapPairs, Kdb} = lists:mapfoldl(fun
   	    (P,Kdbi) ->
   		#c_map_pair{key=Ck,val=Cv} = CMapPair = pattern_map_pair(P,St),
  -		K = core_lib:literal_value(Ck),
  +		K = pattern_map_clean_key(Ck),
   		case dict:find(K,Kdbi) of
   		    {ok, Vs} ->
   			{CMapPair, dict:store(K,[Cv|Vs],Kdbi)};
  
positive.code: attribute({attribute,Line,Name,Val}) ->
      {#c_literal{val=Name, anno=[Line]}, #c_literal{val=Val, anno=[Line]}}.
  
  function({function,_,Name,Arity,Cs0}, Ws0, File, Opts) ->
      %%ok = io:fwrite("~p - ", [{Name,Arity}]),
      St0 = #core{vcount=0,opts=Opts,ws=Ws0,file=[{file,File}]},
      {B0,St1} = body(Cs0, Name, Arity, St0),
      %%ok = io:fwrite("1", []),
      %%ok = io:fwrite("~w:~p~n", [?LINE,B0]),
      {B1,St2} = ubody(B0, St1),
      %%ok = io:fwrite("2", []),
      %%ok = io:fwrite("~w:~p~n", [?LINE,B1]),
      {B2,#core{ws=Ws}} = cbody(B1, St2),
      %%ok = io:fwrite("3~n", []),
      %%ok = io:fwrite("~w:~p~n", [?LINE,B2]),
      {{#c_var{name={Name,Arity}},B2},Ws}.
  
  body(Cs0, Name, Arity, St0) ->
  
negative.code:     "pattern cannot possibly match";
  format_error(bad_binary) ->
      "binary construction will fail because of a type mismatch";
  format_error(bad_map) ->
      "map construction will fail because of a type mismatch".
  
  