public Reducer <Q, A> Reducer <Q>(Func <Q, A> unit) => Reducer <Q, A> .reducer(op, unit);
public Reducer <Q, A> Reducer <Q>(Func <Q, A> unit) { return(Reducer <Q, A> .reducer(op, unit)); }
public Reducer <Q, Pair <A, B> > Pair <B>(Reducer <Q, B> s) { var t = this; return(Semigroup.Pair(s.Semigroup).Reducer <Q>(q => t.unit(q).And(s.unit(q)))); }