anchor.diff:      State.
   
   
  --spec persist_nodes([node_info()]) -> ok | error.
  +-spec persist_nodes(nodes_map()) -> ok | error.
   persist_nodes(Ns) ->
       persist_nodes(Ns, ?PERSIST_FILE).
   
   
  --spec persist_nodes([node_info()], binary()) -> ok | error.
  +-spec persist_nodes(nodes_map(), binary()) -> ok | error.
   persist_nodes(Ns, File) ->
       % as of now we convert the nodes into a JSON representation
       % no specific reason for this - maybe because we might
  
positive.code:     end.
  
  
  -spec load_nodes() -> [node_info()].
  load_nodes() ->
      load_nodes(?PERSIST_FILE).
  
  
  -spec load_nodes(binary()) -> [node_info()].
  load_nodes(File) ->
      case file:open(File, [read, binary, raw]) of
          {ok, IO} ->
  
negative.code: -define(PERSIST_TIMER_INTERVAL, 60 * ?MILLIS_PER_SEC).
  -define(PERSIST_FILE, <<"nodes.json">>).
  
  -type nodes_map() :: #{node() => node_info()}.
  
  -record(state, {
            nodes :: nodes_map(),
            persist_timer :: reference() | undefined
           }).
  
  