General coercion from Integral types.
WARNING: This function performs silent truncation if the result type
is not at least as big as the argument's type.
Lifted version of fromIntegral, defined to let you return
RealFrac instances as targets, instead of only other
Integrals. Essentially the opposite of round.
The gradient should technically diverge whenever the fractional part
of the downstream gradient is 0.5, but does not do this for
convenience reasons.