anchor.diff:      gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
   
   init([]) ->
  -    {ok, _TRef} = timer:send_interval(timer:seconds(1), doit),
  -    {ok, #state{last = stamp()}}.
  +    {ok, TRef} = timer:send_interval(timer:seconds(1), doit),
  +    {ok, #state{last = stamp(), tref = TRef}}.
   
  +stop() ->
  +    gen_server:call(?MODULE, stop).
  +
  +handle_call(stop, _From, State) ->
  +    {stop, shutdown, stopped, State};
   handle_call(_Req, _From, State) ->
       {reply, {error, badrequest}, State}.
   
  
positive.code: 
  -behaviour(gen_server).
  -export([start/0, start_link/0]).
  -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
  
  -record(state, {last}).
  
  start() ->
      gen_server:start({local, ?MODULE}, ?MODULE, [], []).
  
negative.code: handle_info(_Info, State) ->
      {noreply, State}.
  
  terminate(_Reason, State) ->
      {ok, cancel} = timer:cancel(State#state.tref),
      ok.
  
  
  
  code_change(_Vsn, State, _Extra) ->
      {ok, State}.
  