anchor.diff:  
   -module(riak_ensemble_peer).
   -behaviour(gen_fsm).
  --compile(export_all).
   
   -include_lib("riak_ensemble_types.hrl").
   
  
positive.code:     set_timer(?ENSEMBLE_TICK*2, follower_timeout, State).
  
  -spec following(_, state()) -> next_state().
  following(init, State) ->
      ?OUT("~p: Following: ~p~n", [State#state.id, leader(State)]),
      State2 = State#state{ready=false},
      State3 = reset_follower_timer(State2),
      {next_state, following, State3};
  following({commit, Fact, From}, State) ->
      State3 = case Fact#fact.epoch >= epoch(State) of
                   true ->
  
negative.code: -spec prepare(_, fsm_from(), state()) -> {next_state, prepare, state()}.
  prepare(Msg, From, State) ->
      common(Msg, From, State, prepare).
  
  prelead(init, State=#state{id=Id, preliminary=Prelim}) ->
      {Id, NextEpoch} = Prelim,
      State2 = send_all({new_epoch, Id, NextEpoch}, State),
      {next_state, prelead, State2};
  prelead({quorum_met, _Replies}, State=#state{id=Id, preliminary=Prelim, fact=Fact}) ->
      {Id, NextEpoch} = Prelim,
      NewFact = Fact#fact{leader=Id,
                          epoch=NextEpoch,
                          seq=0,
                          view_seq={NextEpoch, 0}},
      State2 = State#state{fact=NewFact},
      leading(init, State2);
  prelead({timeout, _Replies}, State) ->
      probe(init, State);
  prelead(Msg, State) ->
      common(Msg, State, prelead).
  
  prelead(Msg, From, State) ->
      common(Msg, From, State, prelead).
  
  -spec leading(_, state()) -> next_state().
  leading(init, State=#state{id=_Id}) ->
  