anchor.diff:  % key as the value. If two keys have the same value, one of the keys will be
   % overwritten by the other in an undefined order.
   %
  -% The call fails with a `{badmap,Map}' exception if `Map' is not a map.
  +% The call can raise the following exceptions:
  +% <ul>
  +% <li>`{badmap,Map}' if `Map' is not a map</li>
  +% </ul>
   -spec inverse(map()) -> map().
   inverse(Map) ->
       maps:fold(fun(K, V, Acc) -> maps:put(V, K, Acc) end, #{}, Map).
  
positive.code: % is replaced by value `Value'. The function returns a new map `Map2' containing
  % the new association and the old associations in `Map1'.
  %
  % The call fails with a `{badmap,Map}' exception if `Map' is not a map, or with
  % a `{badpath,Path}' exception if `Path' is not a path. `{badvalue,P}' is raised
  % if a term that is not a map exists as a intermediate key at the path `P'.
  -spec deep_put(path(), term(), map()) -> map().
  deep_put(Path, Value, Map1)  ->
      check(Path, Map1),
  
negative.code: % several maps, the value in the first nested map is superseded by the value in
  % a following nested map.
  %
  % The call can raise the following exceptions:
  % <ul>
  % <li>`{badmap,Map}' exception if any of the maps is not a map</li>
  % </ul>
  %
  % @equiv deep_merge(fun (_, V) -> V end, #{}, Maps)
  -spec deep_merge([map()]) -> map().
  