Decompose pair into an abstract class with element accessor methods + mutable/immutable concrete expression classes