lang/printer.ss
#|
Needed to override some Scheme printer behavior (nil, complex)
|#
(module printer mzscheme
  (provide 
   ;acl2-print
   acl2-convert)
  
  (define (acl2-convert x)
    (cond [(null? x) 'nil]
          [(pair? x) 
           (let ([fst (acl2-convert (car x))]
                 [rst (cdr x)])
             (cons fst (if (null? rst) rst (acl2-convert rst))))]
          [(rational? x) x] ;; otherwise 5 would print as (complex 5 0)
          [(complex? x) `(complex ,(real-part x) ,(imag-part x))]
          [else x]))
  
  ;(define old-print (current-print))
  ;(define (acl2-print x) (old-print (acl2-convert x)))
  )