 //        let e = self.expectation()
 //        
 //        f.zip(f1).onFailure { error in
-//            XCTAssert(error.domain == "test")
-//            XCTAssertEqual(error.code, 2)
+//            XCTAssertEqual(error, TestError.Recoverable)
 //            e.fulfill()
 //        }
 //        

//        let e = self.expectation()
//        
//        f1.zip(f).onFailure { error in
//            XCTAssert(error.domain == "tester")
//            XCTAssertEqual(error.code, 3)
//            e.fulfill()
//        }
//        

        
        let e = self.expectation()
        
        future { () -> Result <Int, TestError> in
            Result(error: TestError.Recoverable)
        }.map { number in
            XCTAssert(false, "map should not be evaluated because of failure above")
        }.map { number in
            XCTAssert(false, "this map should also not be evaluated because of failure above")
        }.onFailure { (error:TestError) -> Void in
            XCTAssertEqual(error, TestError.Recoverable)
            e.fulfill()
        }
        
