rewrite rational
fixed type
rational's fields are now private
added rational arithmetic test case
added rational->int/float fallback
integer overflow handling is included to rational