anchor.diff:      erlang:put("local_snap_number", 0),
       {0, false, []}.
   
  --spec new(non_neg_integer(), boolean(), list()) -> snapshot_state().
  +-spec new(non_neg_integer(), boolean(), [comm:mypid() | none]) -> snapshot_state().
   new(Number, InProgress, Leaders) ->
       erlang:put("local_snap_number", Number),
  -    {Number, InProgress, Leaders}.
  +    {Number, InProgress, [X || X <- Leaders, X =/= none]}.
   
   % getters
   
  
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:     erlang:put("local_snap_number", NewVal),
      setelement(1, SnapInfo, NewVal).
  
  -spec add_leader(snapshot_state(), comm:mypid() | none) -> snapshot_state().
  add_leader(State, none) -> State;
  add_leader({Number, InProgress, Leaders}, NewLeader) ->
      {Number, InProgress, [NewLeader | Leaders]}.
    
  -spec start_progress(snapshot_state()) -> snapshot_state().
  start_progress(SnapInfo) -> setelement(2, SnapInfo, true).
  