Currently we re-type check after inlining and desugaring.
This is fine expect for one edge case.
doubleDouble : Double -> Double
doubleDouble x = x * 2
feature incorrect =
from something in doubleDouble 4
After inlining, this will type check as Num a => a and the defaulting rules will
make it an Int instead of a Double.