code: public static <T, R> Spplr<R> map(Spplr<T> supplier, Func<T, R> function) {
          if (supplier instanceof ConstSupplier || supplier instanceof CachingSupplier) {
              return of(function.apply(supplier.get()));
          }
          return new TransformingSupplier<>(supplier, function);
      }
docs: Create a supplier that will transform the value returned by the given supplier by invoking the given function on it.
  This operation is also known as 'map'.
  If the given supplier is a const supplier type (supplies a constant or cache value), the returned supplier
  will also cache the result of the transformation and not re-calculate it on every call.
  
  @param supplier Supplier to transform.
  @param function Function to transform the supplier with.
  @param <T> Supplied value type.
  @param <R> Transformed value type.
  @return A {@link Spplr} that will apply the given function to the value supplied by the given supplier.