code: public static <A, B> Converter<A, B> from(Function<? super A, ? extends B> forwardFunction, Function<? super B, ? extends A> backwardFunction) {
  		return new FunctionBasedConverter<A, B>(forwardFunction, backwardFunction);
  	}
docs: Returns a converter based on <i>existing</i> forward and backward
  functions. Note that it is unnecessary to create <i>new</i> classes
  implementing {@code Function} just to pass them in here. Instead, simply
  subclass {@code Converter} and implement its {@link #doForward} and
  {@link #doBackward} methods directly.
  
  <p>
  These functions will never be passed {@code null} and must not under any
  circumstances return {@code null}. If a value cannot be converted, the
  function should throw an unchecked exception (typically, but not
  necessarily, {@link IllegalArgumentException}).
  
  <p>
  The returned converter is serializable if both provided functions are.
  
  @param <A>
  the generic type
  @param <B>
  the generic type
  @param forwardFunction
  the forward function
  @param backwardFunction
  the backward function
  @return the converter
  @since 17.0