anchor.diff:  -export([start_link/4]).
   
   %% Callbacks
  --export([init/1, code_change/4, handle_event/3, handle_info/3,
  -         handle_sync_event/4, terminate/3]).
  +-export([init/1,
  +         code_change/4,
  +         handle_event/3,
  +         handle_info/3,
  +         handle_sync_event/4,
  +         terminate/3]).
   
   %% States
  --export([prepare/2, execute/2, waiting/2, finish_op/3]).
  +-export([prepare/2,
  +         execute/2,
  +         waiting/2,
  +         finish_op/3]).
   
   -record(state, {from :: pid(),
                   type :: atom(),
  -                log_id,
  -                key,
  +                key :: key(),
                   error :: [term()],
                   payload = undefined :: term() | undefined,
                   preflist :: preflist()}).
  
positive.code:     Error1 = Error0 ++ [Message],
      {next_state, waiting, SD#state{error=Error1}, ?COORD_TIMEOUT};
  waiting({Result, Message}, SD=#state{from=From}) ->
      From ! {Result, Message},
      {stop, normal, SD}.
  
  
negative.code: %% @doc The floppystore coordinator FSM is responsible for selecting
  %%      coordinator node out of the preference list for a given key.
  %%      This coordinator node will be forwarded the request, which will
  %%      perform the local write, and then the replicated write.
  %%
  
  -module(floppy_coord_fsm).
  
  -behavior(gen_fsm).
  