anchor.diff:  end_job(JobName) ->
       gen_server:cast(?MODULE, {job_done, JobName}).
   
  --type joblist_entry() :: {JobName :: binary(),
  -                          process_status(),
  -                          StartTime :: erlang:timestamp(),
  -                          JobCoordinator :: pid()}.
  +-spec clean_job(jobname()) -> ok.
  +clean_job(JobName) ->
  +    gen_server:cast(?MODULE, {clean_job, JobName}).
  +
  +% Retrieval.
   
   -spec get_jobs() -> {ok, [joblist_entry()]}.
   get_jobs() ->
  
positive.code: flush_buffer(_, []) -> ok;
  flush_buffer(File, Buf) ->
      ok = file:write(File, lists:reverse(Buf)).
  
negative.code: -module(event_server).
  -behaviour(gen_server).
  
  % Job notification.
  -export([new_job/2, end_job/1, clean_job/1]).
  % Retrieval.
  -export([get_jobs/0, get_jobs/1, get_jobinfo/1, get_job_events/3,
           get_map_results/1, get_results/1]).
  % Event logging.
  -export([event/4, event/5, event/6,
           task_event/2, task_event/3, task_event/4, task_event/5]).
  % Server.
  -export([start_link/0, init/1, handle_call/3, handle_cast/2, handle_info/2,
           terminate/2, code_change/3]).
  
  