3 (put 'project '(complex)
6 (put 'project '(rational)
7 (lambda (r) (floor r)))
11 (let ((rat (rationalize (inexact->exact d) 1/100)))
12 (make-rat (numerator rat)
17 (let ((project-fn (get 'project (list (type-tag x)))))
19 (let ((dropped-x (project-fn x)))
20 (if (equ? (raise dropped-x) x)