Gilgul
Gilgul is an extension of Java that strictly separates the notions of reference and comparison that are traditionally subsumed in the concept of object identity. This allows for the introduction of new operations that open up new degrees of flexibility during runtime by providing means for unanticipated software evolution. For example, Gilgul supports dynamic replacement of objects without the need to explicitly deal with existing references.