public void Combine()
        {
            var error1  = MyResult.CreateError(Failure.ItIsRaining);
            var error1s = MyResult.CreateError(Failure.ItIsRaining);
            Func <string, MyResult> fails = i => { throw new InvalidOperationException(); };

            Assert.AreEqual(error1s, error1.Combine(fails));
            Assert.AreEqual(error1s, ResultSuccess.Combine(i => error1s));
            Assert.AreEqual(MyResult.CreateSuccess("Hi!"), ResultSuccess.Combine(i => MyResult.CreateSuccess(i + "!")));
        }