 			let otherValue: U
 
 			switch otherValidations.value {
-			case let .success(value):
-				otherValue = value
-			case let .substitution(_, value, _):
-				otherValue = value
-			case let .failure(value, _):
-				otherValue = value
+			case let .success(succeeded):
+				otherValue = succeeded
+			case let .substitution(_, proposed, _):
+				otherValue = proposed
+			case let .failure(failed, _):
+				otherValue = failed
 			}
 
 			return validator(input, otherValue)

		case .success:
			self = .success(value)

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

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

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