anchor.diff:      probe(init, State);
   sync(Msg, State) ->
       common(Msg, State, sync).
  +
  +-spec sync(_, fsm_from(), state()) -> {next_state, sync, state()}.
  +sync(Msg, From, State) ->
  +    common(Msg, From, State, sync).
   
   -spec election(_, state()) -> next_state().
   election(init, State) ->
  
positive.code: set_seq(Seq, State=#state{fact=Fact}) ->
      State#state{fact=Fact#fact{seq=Seq}}.
  
  -spec set_views(undefined | [[{_,atom()}]],state()) -> state().
  set_views(Views, State=#state{fact=Fact}) ->
      State#state{fact=Fact#fact{views=Views}}.
  
  -spec leader(state()) -> undefined | {_,atom()}.
  leader(State) ->
      (State#state.fact)#fact.leader.
  
negative.code: reply(From, Reply, #state{id=Id}) ->
      riak_ensemble_msg:reply(From, Id, Reply).
  
  -spec handle_reply(any(), peer_id(), any(), state()) -> state().
  handle_reply(ReqId, Peer, Reply, State=#state{awaiting=Awaiting}) ->
      Awaiting2 = riak_ensemble_msg:handle_reply(ReqId, Peer, Reply, Awaiting),
  