Some changes based on Humberto's version of the desugarer.