(bind-func Rat (lambda (a b) (if (< b 0) (begin (set! a (* -1 a)) (set! b (* -1 b)))) (let ((r:Rational* (salloc))) (tset! r 0 a) (tset! r 1 b) (pref r 0))))