 				guard let s = self else { return }
 
 				switch s.result.value {
-				case let .failure(failedValue, _):
-					s.value = failedValue
-				case let .substitution(substitutedValue, _, _):
-					s.value = substitutedValue
-				case let .success(value):
-					s.value = value
+				case let .failure(failed, _):
+					s.value = failed
+				case let .substitution(_, proposed, _):
+					s.value = proposed
+				case let .success(succeeded):
+					s.value = succeeded
 				}
 			}
 	}

				switch s.result.value {
				case let .failure(failedValue, _):
					s.value = failedValue
				case let .substitution(substitutedValue, _, _):
					s.value = substitutedValue
				case let .success(value):
					s.value = value
				}

		case .success:
			self = .success(value)

		case let .substitution(substituted, error):
			self = .substitution(substituted: substituted, proposed: value, error)

		case let .failure(error):
			self = .failure(proposed: value, error)
