collect generaliz element supertyp object gen element collect generaliz element result hash set generaliz element gen element generaliz element gener gen generaliz element gen element gener result add gen parent invalid object except invalid element except result 