boolean (Object obj) { if (obj == this) return true; if (!(obj instanceof MapReference) || myHash != ((MapReference)obj).myHash) return false; KeyFMap o1 = get(); KeyFMap o2 = ((MapReference)obj).get(); if (o1 == null || o2 == null) return false; return o1.equalsByReference(o2); }