(define (make-int number) (list 'int number))
(define (make-rational numberator denominator) (list 'rational numberator denominator))
(define (make-real real) (list 'real real))
(define (make-complex real imag) (list 'complex real imag))
(define (int->rational integer) (make-rational integer 1))
(define (rational->real rational) (make-real (/ (cadr rational) (caddr rational))))
(define (real->complex real) (make-complex real 0))
(define (raise x) (apply-generic 'raise x))
(put 'raise 'int int->rational)
(put 'raise 'rational rational->real)
(put 'raise 'real real->complex)