anchor.diff:  
   -spec bind_list([term()], [term()], environment()) -> environment().
   
  -bind_list(Ks, Vs, [{map, Dict}]) ->
  -    [{map, store_list(Ks, Vs, Dict)}];
  -bind_list(Ks, Vs, [{map, Dict} | Env]) ->
  -    [{map, store_list(Ks, Vs, Dict)} | delete_list(Ks, Env)];
  +bind_list(Ks, Vs, [{map, Map}]) ->
  +    [{map, store_list(Ks, Vs, Map)}];
  +bind_list(Ks, Vs, [{map, Map} | Env]) ->
  +    [{map, store_list(Ks, Vs, Map)} | delete_list(Ks, Env)];
   bind_list(Ks, Vs, Env) ->
  -    [{map, store_list(Ks, Vs, dict:new())} | delete_list(Ks, Env)].
  -
  -store_list([K | Ks], [V | Vs], Dict) ->
  -    store_list(Ks, Vs, dict:store(K, V, Dict));
  -store_list([], _, Dict) ->
  -    Dict.
  +    [{map, store_list(Ks, Vs, #{})} | delete_list(Ks, Env)].
  +
  +store_list([K | Ks], [V | Vs], Map) ->
  +    store_list(Ks, Vs, maps:put(K, V, Map));
  +store_list([], _, Map) ->
  +    Map.
   
   delete_list([K | Ks], Env) ->
       delete_list(Ks, delete_any(K, Env));
  
positive.code: %% =====================================================================
  %% @type environment(). An abstract environment.
  
  -type mapping()     :: {'map', dict:dict()} | {'rec', dict:dict(), dict:dict()}.
  -type environment() :: [mapping(),...].
  
  %% =====================================================================
  
negative.code: 	error ->
  	    lookup(Key, Env)
      end;
  lookup(Key, [{rec, Map, Map0} | Env]) ->
      case maps:find(Key, Map) of
  	{ok, F} ->
  	    {ok, F(Map0)};
  	error ->
  	    lookup(Key, Env)
      end.
  