code: public List<GenericType> getGenericParameterTypes() {
          if (root.children.isEmpty()) {
              return null;
          }
  
          List<GenericType> genericParameters = new ArrayList<GenericType>();
          putAllChildren(root, genericParameters);
          return unmodifiableList(new ArrayList<GenericType>(genericParameters));
      }
docs: Get flat list of generics tree represented by {@code root}