anchor.diff:       , "  print-related opts"
        , "arity        (false)       print arity instead of arg list"
        , "buffered     (false)       buffer messages till end of trace"
  -     , "print_pids   (false)       print pids instead of registered names"
        , "print_calls  (true)        print calls"
        , "print_file   (standard_io) print to this file"
        , "print_msec   (false)       print milliseconds on timestamps"
  
positive.code:         {'call',{MFA,Bin}} ->
            case Cnf#cnf.print_calls of
              true ->
                OutFun("~n~s ~s ~P",[MTS,to_str(PP,PI),MFA,Depth]),
                lists:foreach(fun(L)->OutFun("  ~s",[L]) end, stak(Bin));
              false->
                ok
            end;
          {'retn',{{M,F,A},Val}} ->
            OutFun("~n~s ~s ~p:~p/~p -> ~P",[MTS,to_str(PP,PI),M,F,A,Val,Depth]);
          {'send',{MSG,ToPI}} ->
            OutFun("~n~s ~s ~s <<< ~P",
                   [MTS,to_str(PP,PI),to_str(PP,ToPI),MSG,Depth]);
          {'recv',MSG} ->
            OutFun("~n~s ~s <<< ~P",[MTS,to_str(PP,PI),MSG,Depth])
        end
    end.
  
  to_str(false,{Pid,Reg}) when is_pid(Pid) -> flat("<~p>",[Reg]);
  to_str(true, {Pid,_})   when is_pid(Pid) -> flat("~w",[Pid]);
  to_str(_, PI)                            -> flat("~w",[PI]).
  
  mk_out(#cnf{print_re=RE,print_file=File}) ->
    fun(F,A) ->
  
negative.code: 
  mk_outer(#cnf{file=[_|_]}) ->
    fun(_) -> ok end;
  mk_outer(#cnf{print_depth=Depth,print_msec=MS} = Cnf) ->
    OutFun = mk_out(Cnf),
    fun({Tag,Data,PI,TS}) ->
        MTS = fix_ts(MS,TS),
  