docs: @Override
      public <E> Lazy<Choice4<A, B, C, E>> lazyZip(
              Lazy<? extends Applicative<Function<? super D, ? extends E>, Choice4<A, B, C, ?>>> lazyAppFn) {
          return match(a -> lazy(a(a)),
                       b -> lazy(b(b)),
                       c -> lazy(c(c)),
                       d -> lazyAppFn.fmap(choiceF -> choiceF.<E>fmap(f -> f.apply(d)).coerce()));
      }