anchor.diff:      {Port,{data,PortData}} ->           %from the port
         waiting(handle_portdata(St, PortData),CmdArgs,OldReps);
       {'EXIT',Port,Reason} ->                 %port died, us too
  -      die({port_died,{Reason,CmdArgs}});
  +      ?LOG({port_died,{Reason,CmdArgs}});
       quit ->
  -      die(quitting)
  +      die()
     after
       ?BORED -> waiting(bored(waiting,St),CmdArgs,OldReps)
     end.
  
positive.code:   ?LOG([{bored,State}, {state,St}, {msgs,process_info(self(),messages)}]),
    St.
  
  -spec die(term()) -> no_return().
  die(quitting) -> ok;
  die(Reason) ->
    process_flag(trap_exit,false),
    error({dying,Reason}).
  
  log(ProcInfo,Term) when not is_list(Term) -> log(ProcInfo,[Term]);
  log(ProcInfo,List) ->
  
negative.code:       idle(handle_portdata(St, PortData));
      {'EXIT',HandPid,Reason} ->
        %%handler died
        ?LOG({handler_died,Reason});
      {'EXIT',Port,Reason} ->
        %%port died, us too
        ?LOG({port_died,Reason});
      quit ->
        die()
    end.
  
  waiting(St = #st{gtk_pid=GtkPid, gtk_port=Port},CmdArgs,OldReps) ->
  