         let e = self.expectation()
         
         future {
-            Result(error: NSError(domain: "NaN", code: 0, userInfo: nil))
+            Result(error: TestError.Recoverable)
         }.recoverWith { _ in
             return future { _ in
                 fibonacci(5)

        
//        let e1 = self.expectation()
//        
//        let f: Future<Int, NoError> = Future<Int, NSError>(error: NSError(domain: "NaN", code: 0, userInfo: nil)) ?? future(fibonacci(5))
//        
//        f.onSuccess {
//            XCTAssertEqual($0, 5)

        
        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()
        }
        
