code: @Nonnull
      public static <T, R> Function<T, R> safeDefault(@Nullable Function<T, R> func) {
          if (func == null) {
              return (x) -> null;
          }
          return func;
      }
docs: Returns a default function if the argument is {@code null}. The default function's {@code Function#apply(Object)
  apply} method will always return {@code null}. If a non-{@code null} function is passed to this method, it is
  returned as-is.
  
  @param func
  the function reference (may be {@code null})
  
  @return a non-{@code null} object identical to the passed function, if it is non-{@code null}, or a function
  object always returning {@code null} otherwise