Very often we want to debug a program by printing variables, the following macro makes it easier and more convenient.
(define-syntax dbg
(syntax-rules ()
((_ fst ...)
(begin (let loop ((lst (list fst ...))
(symbol-names (map symbol->string (quote (fst ...)))))
(if (not (null? lst))
(begin (display (string-append " " (car symbol-names) ": "))
(display (car lst))