Instead assign attributes on Nop nodes and in the pretty printer specially handle end<start offsets. It's a somewhat weird case, but not wrong per se given the meaning the offsets have.