code: public static <T, R> Function<T, R> softenFunction(final CheckedFunction<T, R> fn) {
          return t -> {
              try {
                  return fn.apply(t);
              } catch (final Throwable e) {
                  throw throwSoftenedException(e);
              }
          };
      }
docs: Soften a CheckedFunction that can throw Checked Exceptions to a standard Function that can also throw Checked Exceptions (without declaring them)
  
  e.g.
  
  <pre>
  {@code
  Data loaded = ExceptionSoftener.softenFunction(this::load).applyHKT(fileName);
  
  public Data load(String file) throws IOException
  </pre>
  
  @param fn CheckedFunction to be converted to a standard Function
  @return Function that can throw checked Exceptions