improve the coercion from custom-number to rational-number