 		}.catch { reason -> Void in
 			XCTFail("Never reaches here.")
 			return
-		}.finally { onSettled -> Void in
+		}.finally { () -> Void in
 			reach++
 			return
 		}.wait()

		
		// make fail
		reach = 0
		asyncSucceed(0).finally { onSettled -> Promise<Int>? in
			reach++
			return self.asyncFail(error)
		}.catch { reason -> Promise<Int>? in


		// recovery
		reach = 0
		asyncFail(error).finally { () -> Promise<Int>? in
			reach++
			return self.asyncSucceed(100)
		}.then { value -> Promise<Void> in
