anchor.diff:      erlang:put("local_snap_number", NewVal),
       setelement(1, SnapInfo, NewVal).
   
  --spec add_leader(snapshot_state(), any()) -> snapshot_state().
  +-spec add_leader(snapshot_state(), comm:mypid() | none) -> snapshot_state().
  +add_leader(State, none) -> State;
   add_leader({Number, InProgress, Leaders}, NewLeader) ->
  -    case NewLeader of
  -        none ->
  -            {Number, InProgress, Leaders};
  -        _ ->
  -            {Number, InProgress, [NewLeader | Leaders]}
  -    end.
  +    {Number, InProgress, [NewLeader | Leaders]}.
     
   -spec start_progress(snapshot_state()) -> snapshot_state().
   start_progress(SnapInfo) -> setelement(2, SnapInfo, true).
  
positive.code: -spec is_in_progress(snapshot_state()) -> boolean().
  is_in_progress({_, InProgress, _}) -> InProgress.
  
  -spec get_leaders(snapshot_state()) -> list().
  get_leaders({_, _, Leaders}) -> Leaders.
  
  % setters
  
negative.code: -export_type([snapshot_state/0]).
  -endif.
  
  -type(snapshot_state() :: {SnapNo::non_neg_integer(), InProgress::boolean(), Leaders::[comm:mypid()]}).
  
  % constructors
  
  