public static void Zip1a() { IEnumerable <int> first = new ThrowingEnumerable <int>(); var second = Enumerable.Range(0, 1); Func <int, int, Either <int, int> > resultSelector = (i, j) => Either <int, int> .OfLeft(i + j); var q = Assert.DoesNotThrow(() => Either.Zip(first, second, resultSelector)); q.OnLeft(x => Assert.ThrowsOnNext(x)); q.OnRight(x => Assert.Fail()); }