anchor.diff:  pattern(#c_map{anno=A,es=Ces}, Isub, Osub0, St0) ->
       {Kes,Osub1,St1} = pattern_list(Ces, Isub, Osub0, St0),
       {#k_map{anno=A,es=Kes},Osub1,St1};
  -pattern(#c_map_pair_assoc{anno=A,key=Ck,val=Cv},Isub, Osub0, St0) ->
  -    {Kk,Osub1,St1} = pattern(Ck, Isub, Osub0, St0),
  -    {Kv,Osub2,St2} = pattern(Cv, Isub, Osub1, St1),
  -    {#k_map_pair_assoc{anno=A,key=Kk,val=Kv},Osub2,St2};
   pattern(#c_map_pair_exact{anno=A,key=Ck,val=Cv},Isub, Osub0, St0) ->
       {Kk,Osub1,St1} = pattern(Ck, Isub, Osub0, St0),
       {Kv,Osub2,St2} = pattern(Cv, Isub, Osub1, St1),
  -    {#k_map_pair_assoc{anno=A,key=Kk,val=Kv},Osub2,St2};
  +    {#k_map_pair_exact{anno=A,key=Kk,val=Kv},Osub2,St2};
   pattern(#c_binary{anno=A,segments=Cv}, Isub, Osub0, St0) ->
       {Kv,Osub1,St1} = pattern_bin(Cv, Isub, Osub0, St0),
       {#k_binary{anno=A,segs=Kv},Osub1,St1};
  
positive.code:     pat_list_vars(Es);
  pat_vars(#k_map{es=Es}) ->
      pat_list_vars(Es);
  pat_vars(#k_map_pair_assoc{val=V}) ->
      pat_vars(V).
  
  pat_list_vars(Ps) ->
  
negative.code: 				     [N|As];
  				 #k_map{es=Es} ->
  				     Vals = [V ||
  						#k_map_pair_exact{val=V} <- Es],
  				     Vals ++ As;
  				 _Other ->
  				     As
  