code: public static FullTypeInfo getFullTemplateType(Type type, int templatePosition) {
  		if (type instanceof ParameterizedType) {
  			return getFullTemplateType(((ParameterizedType) type).getActualTypeArguments()[templatePosition]);
  		} else {
  			throw new IllegalArgumentException();
  		}
  	}
docs: Extract the full template type information from the given type's template parameter at the
  given position.
  
  @param type type to extract the full template parameter information from
  @param templatePosition describing at which position the template type parameter is
  @return Full type information describing the template parameter's type