The very act of identifying an object splits the world into the-object and not-the-object (environment, context, etc.). Ideas like interfaces and types and classification have to do with the interaction between object and not-object. That's why you have ContextSensitiveSubtyping, and why you need ObservationEquivalence. --AamodSane