public Tree <Pair <A, B> > Zip <B>(Tree <B> o) { return(ZipWith <B, Pair <A, B> >(o, Pair <A, B> .pairF())); }
public PairAndMonoid <A, Pair <B, C> > Zip <C>(PairAndMonoid <A, C> o) { return(ZipWith <C, Pair <B, C> >(o, Pair <B, C> .pairF())); }
public List <Pair <A, B> > Product <B>(List <B> o) => ProductWith <B, Pair <A, B> >(o, Pair <A, B> .pairF());
public Input <Pair <E, B> > Zip <B>(Input <B> o) { return(ZipWith <B, Pair <E, B> >(o, Pair <E, B> .pairF())); }
public PairAndSemigroup <A, Pair <B, C> > Zip <C>(PairAndSemigroup <A, C> o) { return(ZipWith <C, Pair <B, C> >(o, Pair <B, C> .pairF())); }
public static Func <X, Pair <A, B> > Zip <A, B, X>(this Func <X, A> a, Func <X, B> b) { return(ZipWith <A, B, Pair <A, B>, X>(a, b, Pair <A, B> .pairF())); }
public Iteratee <E, Pair <A, B> > Zip <B>(Iteratee <E, B> o) { return(ZipWith <B, Pair <A, B> >(o, Pair <A, B> .pairF())); }
public Input <Pair <E, B> > Zip <B>(Input <B> o) => ZipWith(o, Pair <E, B> .pairF());
public NonEmptyList <Pair <A, B> > Product <B>(NonEmptyList <B> o) => ZipWith <B, Pair <A, B> >(o, Pair <A, B> .pairF());
public DiffList <Pair <A, B> > Product <B>(DiffList <B> o) => ProductWith(o, Pair <A, B> .pairF());
public Iteratee <E, Pair <A, B> > Zip <B>(Iteratee <E, B> o) => ZipWith(o, Pair <A, B> .pairF());
public Tree <Pair <A, B> > Zip <B>(Tree <B> o) => ZipWith <B, Pair <A, B> >(o, Pair <A, B> .pairF());
public PairAndMonoid <A, Pair <B, C> > Zip <C>(PairAndMonoid <A, C> o) => ZipWith(o, Pair <B, C> .pairF());
public static Func <X, Pair <A, B> > Zip <A, B, X>(this Func <X, A> a, Func <X, B> b) => ZipWith(a, b, Pair <A, B> .pairF());
public DiffList <Pair <A, B> > Product <B>(DiffList <B> o) { return(ProductWith <B, Pair <A, B> >(o, Pair <A, B> .pairF())); }
public Terminal <Pair <A, B> > Zip <B>(Terminal <B> o) { return(ZipWith <B, Pair <A, B> >(o, Pair <A, B> .pairF())); }
public Terminal <Pair <A, B> > Zip <B>(Terminal <B> o) => ZipWith(o, Pair <A, B> .pairF());
public List <Pair <A, B> > Product <B>(List <B> o) { return(ZipWith <B, Pair <A, B> >(o, Pair <A, B> .pairF())); }