^(x,y::Rational) should promote y to correct type relative to typeof(x) rather than always promoting to Float64