Is there a reason for real-part to return a flonum when given a fraction? Eg. (real-part 1/2) => 0.5. With exact fractions I might have expected to get back the fraction unchanged, the same way an exact integer is returned unchanged.