code: public static String createTypeCollectionId(Collection<? extends Type> types) {
          StringBuilder builder = new StringBuilder();
          List<? extends Type> sortedTypes = new ArrayList<Type>(types);
          Collections.sort(sortedTypes, TypeComparator.INSTANCE);
          builder.append("[");
          for (Iterator<? extends Type> iterator = sortedTypes.iterator(); iterator.hasNext();) {
              builder.append(createTypeId(iterator.next()));
              if (iterator.hasNext()) {
                  builder.append(",");
              }
          }
          builder.append("]");
          return builder.toString();
      }
docs: Generates a unique signature of a collection of types.