@Override
        public Type visitCapturedType(CapturedType t, Void s) {
            Type bound = visitWildcardType(t.wildcard, null);
            return (bound.contains(t)) ?
                    erasure(bound) :
                    bound;
        }