lowers expressions to their "desugared" form.
e.g
a * b + c => (a.mul(b)).add(c)
a * b + c
(a.mul(b)).add(c)