pub fn rat_residue(x: &Rat, y: &Rat) -> Rat
x | y on rationals: y - x * <. y % x, as on the reals.
x | y
y - x * <. y % x