Right, this is the bottleneck. So first of all, if both `t` and `exp` are numbers, then this goes into the `coef` member of `Mul`. So this part is only executed when `t` is a number, but `exp` is not.
So things like 2^x. So if Mul already contains let's say (1/2)^x, and you add 2^y, then you want to instead add (1/2)^(-y)?