anchor.diff:                           "for ping node: ~p", [JoinType, PingNode]),
       {error, unknown_join_type}.
   
  -
  +%% @doc common operations for all join types
   int_join(ExtNodes, #mem{nodes=Nodes, clock=Clock} = State) ->
       NewNodes = lists:foldl(fun({Pos, N, _Options}=New, AccIn) ->
           check_pos(Pos, N, Nodes),
  
positive.code:     end.
  
  
  %% handle join activities, return {ok,NewState}
  handle_join(init, ExtNodes, nil, State) ->
      {_,Nodes,_} = lists:unzip3(ExtNodes),
      ping_all_yall(Nodes),
  
negative.code: -type epoch() :: float().
  -type clock() :: {node(), epoch()}.
  -type vector_clock() :: [clock()].
  -type ping_node() :: node() | nil.
  
  %%====================================================================
  %% API
  