finition: Result = (a = Void and b = Void) or else
                        ((a /= Void and b /= Void) and then
                        a.is_equal (b))
        end

    frozen standard_equal (a: detachable ANY; b: like a): BOOLEAN
            -- Are `a' and `b' either both void or attached to
            -- field-by-field identical objects of the same type?
            -- Always uses default object comparison criterion.
        do
            if a = Void then
                Result := b = Void
  