code: public StringBuilder appendTypeSignature(JvmType type, StringBuilder result) {
  		result.append(type.getSimpleName());
  		if(type instanceof JvmTypeParameterDeclarator) {
  			List<JvmTypeParameter> typeParameters = ((JvmTypeParameterDeclarator) type).getTypeParameters();
  			if (!typeParameters.isEmpty()) {
  				result.append("<");
  				for(int i = 0, size = typeParameters.size(); i < size; i++) {
  					if (i != 0) {
  						result.append(", ");
  					}
  					result.append(typeParameters.get(i).getName());
  				}
  				result.append(">");
  			}
  		}
  		return result;
  	}
docs: Returns the signature of the given type. If the type declares type parameters, the type
  parameters are included but their bounds are omitted. That is, the type {@code X<T extends CharSequence>}
  will be returned as {@code X<T>}