Numeric types and their relationships

Thanks @yakir12, Union sure solves it. :+1:

I am still curious about why the type hierarchy was not chosen so that Integer <: Rational, probably a performance bottleneck?