anchor.diff:  -spec get_jobinfo(jobname()) -> invalid_job | {ok, job_eventinfo()}.
   get_jobinfo(JobName) ->
       gen_server:call(?MODULE, {get_jobinfo, JobName}).
  +
  +-spec get_job_event_handler(jobname()) -> invalid_job | pid().
  +get_job_event_handler(JobName) ->
  +    gen_server:call(?MODULE, {get_job_event_handler, JobName}).
   
   -spec get_job_msgs(jobname(), string(), integer()) -> {ok, [binary()]}.
   get_job_msgs(JobName, Q, N) ->
  
positive.code: -export([new_job/3, end_job/1, clean_job/1]).
  % Retrieval.
  -export([get_jobs/0, get_jobs/1, get_jobinfo/1, get_job_msgs/3,
           get_stage_results/2, get_results/1]).
  % Event logging.
  -export([event/4, event/5, event/6,
           task_event/2, task_event/3, task_event/4, task_event/5,
  
negative.code:             {ok, json_list(tail_log(JobName, N))}
      end.
  
  -spec do_get_job_event_handler(jobname(), event_dict()) -> invalid_job | pid().
  do_get_job_event_handler(JobName, Events) ->
      case dict:find(JobName, Events) of
          error ->
              invalid_job;
          {ok, JE} ->
              JE
      end.
  
  -spec do_get_results(jobname(), event_dict())
                      -> invalid_job | {job_status(), pid()}
                             | {ready, pid(), [url() | [url()]]}.
  