code: public <T> Result<T> flatMap(Function<? super R, Result<T>> mapper) {
          return xor.fold(
              e -> new Result<T>(Xor.left(e)),
              mapper
          );
      }
docs: FIXME: Redundant definition of type arguments needed for oraclejdk8