make desugaring more functional, to preserve the original parse tree in preparation for Pyret translation