docs: @Override
      public <R2> Lazy<EitherT<M, L, R2>> lazyZip(
              Lazy<? extends Applicative<Function<? super R, ? extends R2>, MonadT<M, Either<L, ?>, ?>>> lazyAppFn) {
          return new Compose<>(melr)
                  .lazyZip(lazyAppFn.fmap(maybeT -> new Compose<>(
                          maybeT.<EitherT<M, L, Function<? super R, ? extends R2>>>coerce()
                                  .<Either<L, Function<? super R, ? extends R2>>,
                                          Monad<Either<L, Function<? super R, ? extends R2>>, M>>run())))
                  .fmap(compose -> eitherT(compose.getCompose()));
      }