Less temporary variables in desugaring

Is there a reason you are not passing this immutable through the fold and rec?