anchor.diff:  
   
   %% @doc Like gen_server:call/3 but traps exceptions
  --spec call(atom()|pid(), term(), #{timeout=>timeout()}) ->
  -    term() | {error, {exit|error|throw, term()}}.
  +%% For timeouts: {error, {exit, {timeout, _}}}
  +-spec call(atom()|pid(), term(), #{timeout=>pos_integer()|infinity}) ->
  +    term() | {error, timeout | {exit|error|throw, {term(), list()}}}.
   
   call(Dest, Msg, Opts) ->
       Timeout = maps:get(timeout, Opts, 5000),
  
positive.code:         Class:Error ->
              {error, {Class, {Error, erlang:get_stacktrace()}}}
      end.
  
  
  
  %% @doc Safe gen_server:call/3
  
negative.code: -spec to_map(list()|map()) -> 
      map().
  
  to_map(M) when is_map(M) -> 
      M;
  to_map(L) when is_list(L) -> 
      L1 = lists:map(
          fun(T) ->
              case T of
                  {K, V} -> {K, V};
                  K -> {K, true}
              end
          end,
          L),
      maps:from_list(L1).
  
  
  %% @doc Converts anything into a `integer()' or `error'.
  