 
 	/// Attempts to map each value in the receiver, bailing out with an error if
 	/// a given mapping is `nil`.
-	public func tryMap<U>(f: (T, NSErrorPointer) -> U?) -> ColdSignal<U> {
+	public func tryMap<U>(defaultError: NSError = RACError.Empty.error, _ f: (T, NSErrorPointer) -> U?) -> ColdSignal<U> {
 		return tryMap { value -> Result<U> in
 			var error: NSError?
 			let maybeValue = f(value, &error)


	/// Performs the given action upon each value in the receiver, bailing out
	/// with an error if it returns `false`.
	public func try(f: (T, NSErrorPointer) -> Bool) -> ColdSignal {
		return tryMap { (value, error) in f(value, error) ? value : nil }
	}

	/// Performs the given action upon each value in the receiver, bailing out

			if let v = maybeValue {
				return .Success(Box(v))
			} else {
				return .Failure(error.orDefault(defaultError))
			}
		}
	}
