let frac x = sub x (Q.from_z (floor x))