code: public final <L> Either<L, A> toEither(Supplier<L> lSupplier) {
          return fmap(Either::<L, A>right).orElseGet(() -> left(lSupplier.get()));
      }
docs: If this value is absent, return the value supplied by <code>lSupplier</code> wrapped in <code>Either.left</code>.
  Otherwise, wrap the value in <code>Either.right</code> and return it.
  
  @param lSupplier the supplier for the left value
  @param <L>       the left parameter type
  @return this value wrapped in an Either.right, or an Either.left around the result of lSupplier