anchor.diff:  	     , print_file   = ""           % file to print to (standard_io)
                , print_p      = 999999       % Limit for "~P" formatting depth
                , print_re     = ""           % regexp that must match to print
  +             , print_msec   = false        % print milliseconds in timestamps?
   	     , max_queue    = 5000         % max # of msgs before suicide
   	     , max_msg_size = 50000        % max message size before suicide
                , file         = ""           % file to write trace msgs to
  
positive.code: slist(X) -> [X].
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  printi(PrintFun,FmtP_Depth) ->
    receive 
      {trace_consumer,TC} -> 
        erlang:monitor(process,TC),
        printl(PrintFun,FmtP_Depth)
    end.
  
  printl(PrintFun,FmtP_Depth) ->
    receive
      {'DOWN',_,_,_,R} -> io:fwrite("quitting: ~p~n",[R]);
      X                -> outer(PrintFun,FmtP_Depth,X), printl(PrintFun,FmtP_Depth)
    end.
  
  outer(_,_,[]) -> ok;
  outer(PrintFun,FmtP_Depth,[Msg|Msgs]) ->
    case Msg of
      {'call',{MFA,Bin},PI,TS} ->
        PrintFun(flat("~n~s <~p> ~P",[ts(TS),PI,MFA,FmtP_Depth])),
        foreach(fun(L)->PrintFun(flat("  ~P",[L,FmtP_Depth])) end, stak(Bin));
      {'retn',{MFA,Val},PI,TS} -> 
        PrintFun(flat("~n~s <~p> ~p -> ~P",[ts(TS),PI,MFA,Val,FmtP_Depth]));
      {'send',{MSG,To},PI,TS} -> 
        PrintFun(flat("~n~s <~p> <~p> <<< ~P",[ts(TS),PI,To,MSG,FmtP_Depth]));
      {'recv',MSG,PI,TS} -> 
        PrintFun(flat("~n~s <~p> <<< ~P",[ts(TS),PI,MSG,FmtP_Depth]));
      _ ->
        PrintFun(flat("~n~P", [Msg,FmtP_Depth]))
    end,
    outer(PrintFun,FmtP_Depth,Msgs).
  
  ts({H,M,S,_Us}) -> flat("~2.2.0w:~2.2.0w:~2.2.0w",[H,M,S]).
  
  flat(Form,List) -> flatten(io_lib:fwrite(Form,List)).
  
  
negative.code:            , "print_file   (standard_io) print to this file"
             , "print_p      (999999)      formatting depth for \"~P\""
             , "print_re     (\"\")          print only strings that match this"
             , "print_msec   (false)       print milliseconds on timestamp"
             , "  trc file related opts"
             , "file         (none)        use a trc file based on this name"
             , "file_size    (1)           size of each trc file"
  