(define (sugardisplay x) (define (displayheader f i x) (cond ((null? x) (newline)) ((not (pair? x)) (display " . ") (display x) (newline)) ((pair? (car x)) (newline) (displaybody i x)) (#t (if (not f) (display " ")) (display (car x)) (displayheader #f i (cdr x))))) (define (displaybody i x) (cond ((null? x)) ((not (pair? x)) (display (make-string i #\space)) (display ".") (newline) (displayblock i x)) (#t (displayblock i (car x)) (displaybody i (cdr x))))) (define (displayblock i x) (display (make-string i #\space)) (cond ((pair? x) (cond ((pair? (car x)) (display "group") (newline) (displaybody (+ i 1) x)) ((null? (cdr x)) (display "group ") (display (car x)) (newline)) (#t (displayheader #t (+ i 1) x)))) ((null? x) (display "group") (newline)) (#t (display x) (newline)))) (displayblock 0 x) (values))