fix and optimize desugaring of or