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

@param lazyAppFn