anchor.diff:  	   size = counter__new_passive(Size),
   	   effort = counter__new_passive(Effort),
   	   unroll = Unroll,
  -	   cache = dict:new(),
  +	   cache = maps:new(),
    	   var_flags = ets:new(var, EtsOpts),
   	   opnd_flags = ets:new(opnd, EtsOpts),
   	   app_flags = ets:new(app, EtsOpts)}.
  
positive.code:     ets:lookup_element(S#state.var_flags, L, #var_flags.referenced).
  
  st__lookup_opnd_cache(L, S) ->
      dict:find(L, S#state.cache).
  
  %% Note that setting the cache should only be done once.
  
  st__set_opnd_cache(L, C, S) ->
      S#state{cache = dict:store(L, C, S#state.cache)}.
  
  st__set_opnd_effect(L, S) ->
      T = S#state.opnd_flags,
  
negative.code: %% Abstract datatype: renaming()
  
  ren__identity() ->
      #{}.
  
  ren__add(X, Y, Ren) ->
      Ren#{X=>Y}.
  
  ren__map(X, Ren) ->
      case Ren of
          #{X:=Y} -> Y;
          #{} -> X
      end.
  
  ren__add_identity(X, Ren) ->
      maps:remove(X, Ren).
  
  
  %% =====================================================================
  