Yeah, eventually I think we want to have explicit syntax for "namespacing" declarations and references, which would supersede the need for @_implements
, e.g.:
struct MyFloat {
static func Equatable.==(l: MyFloat, r: MyFloat) -> Bool { /* total equality */ }
static func Numeric.==(l: MyFloat, r: MyFloat) -> Bool { /* IEEE equality */ }
}
let totallyEqual = Equatable.==(x, y)
let floatallyEqual = Numeric.==(x, y)