anchor.diff:  %% partisan_peer_service_manager callbacks
   -export([start_link/0,
            members/0,
  +         member/1,
            members_for_orchestration/0,
            myself/0,
            get_local_state/0,
  
positive.code: %% @private
  up(#{name := Name}, State) ->
      up(Name, State);
  up(Name, #state{up_functions=UpFunctions}) ->
      case dict:find(Name, UpFunctions) of
          error ->
              ok;
          {ok, Functions} ->
              [Function() || Function <- Functions],
              ok
      end.
  
  %% @private
  down(#{name := Name}, State) ->
      down(Name, State);
  down(Name, #state{down_functions=DownFunctions}) ->
      case dict:find(Name, DownFunctions) of
          error ->
              ok;
          {ok, Functions} ->
              [Function() || Function <- Functions],
              ok
      end.
  
  
negative.code: -spec start_link() -> {ok, pid()} | ignore | {error, term()}.
  start_link() ->
      gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
  
  %% @doc Returns true if node `Node' is a member in the membership list.
  %% Otherwise returns `false'.
  %% @end
  member(#{name := Node}) ->
      member(Node);
  
  member(Node) when is_atom(Node) ->
      gen_server:call(?MODULE, {member, Node}, infinity).
  
  
  %% @doc Return membership list.
  members() ->
  