 				theException: res.theException,
 				labels: insertWith(max, s, n, res.labels),
 				stamp: res.stamp.union([s]),
-				callbacks: res.callbacks)
+				callbacks: res.callbacks,
+				abort: false)
 		})(p: p)
 	}
 	return p.property()

	let stamp			: Set<String>
	/// Callbacks attached to the test case.
	let callbacks		: [Callback]

	/// Destructures a test case into a matcher that can be used in switch statement.
	public func match() -> TestResultMatcher {
		return .MatchResult(ok: ok, expect: expect, reason: reason, theException: theException, labels: labels, stamp: stamp, callbacks: callbacks)
	}

	public init(ok : Optional<Bool>, expect : Bool, reason : String, theException : Optional<String>, labels : Dictionary<String, Int>, stamp : Set<String>, callbacks : [Callback]) {
		self.ok = ok
		self.expect = expect
		self.reason = reason

						stamp: Set(),
						callbacks: result1.callbacks + [.AfterFinalFailure(kind: .Counterexample, f: { _ in
							return println("")
						})] + result2.callbacks,
						abort: false))
				case .None:
					return Rose.pure(result2)
				default:
