code: private TypeName _visit(TypeMirror type, Void parameter) {
          if (VISITED.get().add(type)) try {
              return super.visit(type, parameter);
          } finally {
              VISITED.get().remove(type);
              if (VISITED.get().isEmpty()) VISITED.remove();
          }
          return defaultAction(type, parameter);
      }
docs: Internal variant of {@link #visit(TypeMirror, Object)} for calls from inside this visitor itself.
  <p>
  Main purpose of this method is to limit the endless recursion that would result for types such as
  {@code <T extends Comparable<T>>}
  
  @param type      The type to visit.
  @param parameter The parameter (ignored by our visitor).
  @return The type name