collect generaliz element supertyp object cl cl classifi illeg argument except generaliz element ge generaliz element cl collect generaliz element result hash set generaliz element collect generaliz element ad supertyp ge collect generaliz element newli ad hash set generaliz element generaliz element element ad newli ad add supertyp element result add ad ad newli ad ad remov result ad invalid object except invalid element except result 