anchor.diff:  force_novars(#icall{}=Call, St) -> {Call,[],St};
   force_novars(#ifun{}=Fun, St) -> {Fun,[],St};	%These are novars too
   force_novars(#ibinary{}=Bin, St) -> {Bin,[],St};
  +force_novars(#c_map{}=Bin, St) -> {Bin,[],St};
   force_novars(Ce, St) ->
       force_safe(Ce, St).
   
  
positive.code: 	false -> throw({bad_map,bad_map})
      end.
  
  map_build_pairs(Map0, Es0, Ann, St0) ->
      {Es,Pre,St1} = map_build_pairs_1(Es0, St0),
      case ann_c_map(Ann, Map0, Es) of
  	#c_literal{}=Map ->
  	    {Map,[],St1};
  	#c_map{}=Map ->
  	    {Var,St2} = new_var(St1),
  	    {Var,Pre++[#iset{var=Var,arg=Map}],St2}
      end.
  
  map_build_pairs_1([{Op0,L,K0,V0}|Es], St0) ->
      {K,Pre0,St1} = safe(K0, St0),
  
negative.code: %% match arguments are novars
  %% case arguments are novars
  %% receive timeouts are novars
  %% binaries and maps are novars
  %% let/set arguments are expressions
  %% fun is not a safe
  
  