anchor.diff:  update_c_map(#c_map{is_pat=false}=Old, M, Es) ->
       ann_c_map(get_ann(Old), M, Es).
   
  +-spec map_pair_key(c_map_pair()) -> cerl().
  +
   map_pair_key(#c_map_pair{key=K}) -> K.
  +
  +-spec map_pair_val(c_map_pair()) -> cerl().
  +
   map_pair_val(#c_map_pair{val=V}) -> V.
  +
  +-spec map_pair_op(c_map_pair()) -> map_op().
  +
   map_pair_op(#c_map_pair{op=Op}) -> Op.
   
   -spec c_map_pair(cerl(), cerl()) -> c_map_pair().
  
positive.code: 
  ann_c_map_pair(As,Op,K,V) ->
      #c_map_pair{op=Op, key = K, val=V, anno = As}.
  
  update_c_map_pair(Old,Op,K,V) ->
      #c_map_pair{op=Op, key=K, val=V, anno = get_ann(Old)}.
  
negative.code: %% @doc Returns <code>true</code> if <code>Node</code> is an abstract
  %% map constructor, otherwise <code>false</code>.
  
  -type map_op() :: #c_literal{val::'assoc'} | #c_literal{val::'exact'}.
  
  -spec is_c_map(cerl()) -> boolean().
  
  is_c_map(#c_map{}) ->
  