docs: @Override
      @SuppressWarnings("RedundantTypeArguments")
      public <R2> Either<L, R2> flatMap(Function<? super R, ? extends Monad<R2, Either<L, ?>>> rightFn) {
          return match(Either::left, rightFn.andThen(Monad<R2, Either<L, ?>>::coerce));
      }