Plan 9 from Bell Labs’s /usr/web/sources/contrib/fernan/nhc98/src/prelude/Ratio/Reduce.hs
module Ratio where import DRatio reduce :: (Integral a) => a -> a -> Ratio a reduce x y = if y == 0 then error "Ratio.%: zero denominator" -- Haskell 1.2 used signum x :% 0 else (x `quot` d) :% (y `quot` d) where d = gcd x y