anchor.diff:  -behaviour(gen_server).
   
   %% API
  --export([start_link/5, stop/1]).
  +-export([start_link/5, stop/1, checkpoint/1]).
   
   %% gen_server callbacks
   -export([init/1, handle_call/3, handle_cast/2, handle_info/2,
  
positive.code: 
  handle_call({cb_dirty_op, Op}, From,
              #state{proj=Proj0, cb_mod=CallbackMod, stream_num=StreamNum,
                     page_size=PageSize, back_ps=BackPs, i_state=I_State}=State) ->
      {AsyncType, I_State2, Proj1, LPN, NewBackPs} =
          CallbackMod:do_dirty_op(Op, From, I_State, StreamNum,
                                  Proj0, PageSize, BackPs),
  
negative.code: stop(Pid) ->
      gen_server:call(Pid, {stop}, ?LONG_TIME).
  
  checkpoint(Pid) ->
      gen_server:call(Pid, {sync_checkpoint}, ?LONG_TIME).
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  init([PageSize, SequencerPid, Proj, CallbackMod, StreamNum]) ->
  