code: @SuppressWarnings("unchecked")
  	@PublicEvolving
  	public static <OUT> TypeInformation<OUT> createTypeInfo(Object instance, Class<?> baseClass, Class<?> clazz, int returnParamPos) {
  		if (instance instanceof ResultTypeQueryable) {
  			return ((ResultTypeQueryable<OUT>) instance).getProducedType();
  		} else {
  			return createTypeInfo(baseClass, clazz, returnParamPos, null, null);
  		}
  	}
docs: Creates a {@link TypeInformation} from the given parameters.
  
  If the given {@code instance} implements {@link ResultTypeQueryable}, its information
  is used to determine the type information. Otherwise, the type information is derived
  based on the given class information.
  
  @param instance			instance to determine type information for
  @param baseClass			base class of {@code instance}
  @param clazz				class of {@code instance}
  @param returnParamPos	index of the return type in the type arguments of {@code clazz}
  @param <OUT>				output type
  @return type information