Since we’re on the topic of omissions from these APIs, can we add the overloads that make + commutative (as Strideable already does, and thus all clock and duration types, but not instant types) as well as *?
extension InstantProtocol {
// Exists:
public static func + (_ lhs: Self, _ rhs: Duration) -> Self
// Omitted:
public static func + (_ lhs: Duration, _ rhs: Self) -> Self
}
public protocol DurationProtocol: Comparable, AdditiveArithmetic, Sendable {
// Exists:
static func * (_ lhs: Self, _ rhs: Int) -> Self
// Omitted:
static func * (_ lhs: Int, _ rhs: Self) -> Self
}
extension Duration {
// Exists:
public static func * (_ lhs: Duration, _ rhs: Double) -> Duration
public static func * (_ lhs: Duration, _ rhs: Int) -> Duration
// Omitted:
public static func * (_ lhs: Double, _ rhs: Duration) -> Duration
public static func * (_ lhs: Int, _ rhs: Duration) -> Duration
}