[plt-dev] mzlib/trace better prefixes

From: Jon Rafkind (rafkind at cs.utah.edu)
Date: Wed Sep 16 14:38:07 EDT 2009

Attached is a patch that changes the prefixes that mzlib/trace prints 
depending on whether a function call is occuring or if a result is being 
returned. "<" is a function call and ">" is a return value. I find this 
is easier to read than the current ambiguous "|". If no one disagrees 
with the change in style then I will clean up the patch and commit it.

<(a 0)
< (b 0)
< <(c 0)
< < (d 0)
 > > 0
 > >1
 > 2
 >3
3

vs

|(a 0)
| (b 0)
| |(c 0)
| | (d 0)
| | 0
| |1
| 2
|3
3


Results become very ambiguous when the return value is a list that looks 
like a function call.

#lang scheme

(require mzlib/trace)

(define (foo x) `(foo ,x))
(trace foo)
(foo 2)

$ mzscheme n.ss
|(foo 2)
|(foo 2)
(foo 2)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: trace.diff
Type: text/x-patch
Size: 7208 bytes
Desc: not available
URL: <http://lists.racket-lang.org/dev/archive/attachments/20090916/4532b901/attachment.bin>

Posted on the dev mailing list.