anchor.diff:  -spec encode_as_uri(pid() | reference() | atom()) -> binary() | no_return().
   
   encode_as_uri(Term) ->
  -    encode_as_uri(Term, partisan:node()).
  -
  -
  -%% -----------------------------------------------------------------------------
  -%% @private
  -%% @doc
  -%% @end
  -%% -----------------------------------------------------------------------------
  --spec encode_as_uri(pid() | reference() | atom(), node()) ->
  +    encode_as_uri(Term, partisan:nodestring()).
  +
  +
  +%% -----------------------------------------------------------------------------
  +%% @private
  +%% @doc
  +%% @end
  +%% -----------------------------------------------------------------------------
  +-spec encode_as_uri(pid() | reference() | atom(), node() | binary()) ->
       binary() | no_return().
   
  -encode_as_uri(Pid, Node) when erlang:is_pid(Pid) ->
  -    Node = atom_to_binary(Node),
  +encode_as_uri(Term, Node) when is_atom(Node) ->
  +    encode_as_uri(Term, atom_to_binary(Node, utf8));
  +
  +encode_as_uri(Pid, Nodestring) when erlang:is_pid(Pid) ->
       PidBin = untag(pid_to_list(Pid)),
  -    maybe_pad(<<"partisan:pid:", Node/binary, $:, PidBin/binary>>);
  -
  -encode_as_uri(Ref, Node) when erlang:is_reference(Ref) ->
  -    Node = atom_to_binary(Node),
  +    maybe_pad(<<"partisan:pid:", Nodestring/binary, $:, PidBin/binary>>);
  +
  +encode_as_uri(Ref, Nodestring) when erlang:is_reference(Ref) ->
       <<"#Ref", RefBin/binary>> = untag(ref_to_list(Ref)),
  -    maybe_pad(<<"partisan:ref:", Node/binary, $:, RefBin/binary>>);
  -
  -encode_as_uri(Name, Node) when is_atom(Name) ->
  -    Node = atom_to_binary(Node, utf8),
  +    maybe_pad(<<"partisan:ref:", Nodestring/binary, $:, RefBin/binary>>);
  +
  +encode_as_uri(Name, Nodestring) when is_atom(Name) ->
       NameBin = atom_to_binary(Name, utf8),
  -    maybe_pad(<<"partisan:name:", Node/binary, $:, NameBin/binary>>).
  +    maybe_pad(<<"partisan:name:", Nodestring/binary, $:, NameBin/binary>>).
   
   
   %% -----------------------------------------------------------------------------
  
positive.code: 
  maybe_pad(Bin) ->
      Bin.
  
negative.code:     Node =:= partisan:node() orelse error(badarg),
      case Type of
          partisan_process_reference -> list_to_pid(Value);
          partisan_encoded_reference -> list_to_ref(Value);
          partisan_registered_name_reference -> list_to_atom(Value)
      end.
  
  
  %% @private
  get_node(Bin) ->
      Nodestring = get_nodestring(Bin),
      binary_to_existing_atom(Nodestring, utf8).
  
  
  %% @private
  get_nodestring(Bin) ->
      case binary:split(Bin, <<$:>>) of
          [Node | _]  ->
              Node;
          _ ->
              error(badarg)
      end.
  