code: public static <T extends R, R> R narrow(T value) {
          return new Vary<T, R>().apply(value);
      }
docs: Performs an upcast on a value.
  
  @param <T> the source type
  @param <R> the resulting type
  @param value the value to be cast
  @return the resulting value