case CompoundType(Type[] parts, _): for (int i = 0; i < parts.length; ++i) addConstructorsNeededBy(roots, parts[i], set);
        private void addConstructorsNeededBy(HashSet roots,                                             Type tp,                                             HashSet set){            switch (tp) {            case TypeRef(_, Symbol pSym, Type[] args):                if (!pSym.isParameter()) {                    set.add(pSym);                    set.addAll(constructorsNeededBy(roots, pSym));                    for (int i = 0; i < args.length; ++i)                        addConstructorsNeededBy(roots, args[i], set);                }                break;            default:                ;               // nothing to do            }        }