anchor.diff:  
   %% Callbacks
   
  -init([Command]) ->
  +init([Command, Owner, Options]) ->
       process_flag(trap_exit, true),
  -    {ok, ExecPid, OSPid} = exec:run_link(Command, []),
  -    {ok, #state{os_pid = OSPid, exec_pid = ExecPid}}.
  +    {ok, ExecPid, OSPid} = exec:run_link(Command, Options),
  +    {ok, #state{os_pid = OSPid, exec_pid = ExecPid, owner = Owner}}.
   
   handle_call(stop, _From, S = #state{exec_pid = ExecPid}) ->
       exec:stop(ExecPid),
  
positive.code: 
  -behaviour(gen_server).
  
  -export([exec/1]).
  -export([syn_exec/1]).
  -export([stop/1]).
  -export([os_pid/1]).
  
negative.code: handle_cast(_Msg, State) ->
      {noreply, State}.
  
  handle_info({stdout, FromOsPid, FlushedStdout}, S = #state{os_pid = OsPid, owner = Owner}) when FromOsPid =:= OsPid ->
      Owner ! {stdout, self(), FlushedStdout},
      {noreply, S};
  handle_info({'EXIT',FromExecPid,ExitInfo}, S = #state{exec_pid = ExecPid}) when FromExecPid =:= ExecPid ->
      {stop, {shutdown, translate_status(ExitInfo)}, S}.
  
  