public boolean isEqual(Heaper other) {
	if (other instanceof IDRegion) {
		IDRegion iDs = (IDRegion) other;
		if (mySpace == null) {
			if ( ! (iDs.fetchSpace() == null)) {
				return false;
			}
		}
		else {
			if ( ! (iDs.fetchSpace() != null && (iDs.fetchSpace().isEqual(mySpace)))) {
				return false;
			}
		}
		if (myIncludesRest == iDs.includesRest() && (myLocalIDs.isEqual(iDs.localIDs()))) {
			if (myImportedIDs == null) {
				return iDs.fetchImportedIDs() == null;
			}
			else {
				return iDs.fetchImportedIDs() != null && (iDs.fetchImportedIDs().isEqual(myImportedIDs));
			}
		}
		return false;
	}
	else {
		return false;
	}
/*
udanax-top.st:67860:IDRegion methodsFor: 'testing'!
{BooleanVar} isEqual: other {Heaper}
	other cast: IDRegion into: [ :iDs |
		mySpace == NULL
				ifTrue: [iDs fetchSpace == NULL ifFalse:[^false]]
				ifFalse: [(iDs fetchSpace ~~ NULL
					and: [iDs fetchSpace isEqual: mySpace]) ifFalse:[^false]].
		(myIncludesRest == iDs includesRest and: [myLocalIDs isEqual: iDs localIDs])
			ifTrue: [myImportedIDs == NULL
				ifTrue: [^ iDs fetchImportedIDs == NULL]
				ifFalse: [^ iDs fetchImportedIDs ~~ NULL
					and: [iDs fetchImportedIDs isEqual: myImportedIDs]]].
		^false]
	others:
		[^false].
	^false "fodder"!
*/
}