The Swift Package Index logo.Swift Package Index

Build Information

Failed to build Attabench, reference v2.0.0 (df85ad), with Swift 6.3 for macOS (SPM) on 12 Apr 2026 08:53:53 UTC.

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64

Build Log

 36 |     public var isEmpty: Bool { return count == 0 }
 37 |
 38 |     internal var valueUpdates: AnySource<ValueUpdate<Set<Element>>> {
    |                                                      `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 39 |         var value = self.value
 40 |         return self.updates.map { event in
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:81:25: error: cannot convert value of type '(Update<SetChange<Self.Element>>) -> ()' to expected argument type '(Update<ValueChange<Value>>) -> Void'
 79 |         return AnyUpdatableValue(
 80 |             getter: { self.value },
 81 |             apply: self.apply,
    |                         `- error: cannot convert value of type '(Update<SetChange<Self.Element>>) -> ()' to expected argument type '(Update<ValueChange<Value>>) -> Void'
 82 |             updates: self.valueUpdates)
 83 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Update.swift:22:20: note: arguments to generic parameter 'Change' ('ValueChange<Value>' and 'SetChange<Self.Element>') are expected to be equal
20 | ///
21 | /// Note that is perfectly legal for a transaction to include no actual changes.
22 | public enum Update<Change: ChangeType> {
   |                    `- note: arguments to generic parameter 'Change' ('ValueChange<Value>' and 'SetChange<Self.Element>') are expected to be equal
23 |     public typealias Value = Change.Value
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:86:37: error: cannot convert value of type 'UpdatableSetBox<Self>' to expected argument type '_AbstractUpdatableSet<Element>'
 84 |
 85 |     public var anyUpdatableSet: AnyUpdatableSet<Element> {
 86 |         return AnyUpdatableSet(box: UpdatableSetBox(self))
    |                                     `- error: cannot convert value of type 'UpdatableSetBox<Self>' to expected argument type '_AbstractUpdatableSet<Element>'
 87 |     }
 88 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:33:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
 33 |     public func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
    |                                    `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 34 |     public func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
 35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:34:38: error: type 'Self.Element' does not conform to protocol 'Hashable'
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
 33 |     public func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
 34 |     public func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
    |                                      `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 35 |
 36 |     public var isEmpty: Bool { return count == 0 }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:68:34: error: type 'Self.Element' does not conform to protocol 'Hashable'
 66 |     }
 67 |
 68 |     public var anyObservableSet: AnyObservableSet<Element> {
    |                                  `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 69 |         return AnyObservableSet(box: ObservableSetBox(self))
 70 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:194:25: error: cannot convert value of type '(Update<SetChange<Element>>) -> ()' to expected argument type '(Update<ValueChange<Set<Element>>>) -> Void'
192 |         return AnyUpdatableValue(
193 |             getter: { self.value },
194 |             apply: self.apply,
    |                         `- error: cannot convert value of type '(Update<SetChange<Element>>) -> ()' to expected argument type '(Update<ValueChange<Set<Element>>>) -> Void'
195 |             updates: self.valueUpdates)
196 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Update.swift:22:20: note: arguments to generic parameter 'Change' ('ValueChange<Set<Element>>' and 'SetChange<Element>') are expected to be equal
20 | ///
21 | /// Note that is perfectly legal for a transaction to include no actual changes.
22 | public enum Update<Change: ChangeType> {
   |                    `- note: arguments to generic parameter 'Change' ('ValueChange<Set<Element>>' and 'SetChange<Element>') are expected to be equal
23 |     public typealias Value = Change.Value
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:274:18: error: instance method 'add' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
272 |
273 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
274 |         contents.add(sink)
    |                  `- error: instance method 'add' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
275 |     }
276 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
14 |     var value: Value { get }
15 |
16 |     func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
17 |
18 |     @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:279:25: error: instance method 'remove' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
277 |     @discardableResult
278 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
279 |         return contents.remove(sink)
    |                         `- error: instance method 'remove' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
280 |     }
281 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
17 |
18 |     @discardableResult
19 |     func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
20 | }
21 |
[179/188] Compiling GlueKit UISearchBar Glue.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 22 |
 23 |     // Required members
 24 |     var value: [Element] { get nonmutating set }
    |         `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 25 |     func apply(_ update: ArrayUpdate<Element>)
 26 |     subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 |     ///
58 |     /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 |     var value: Value { get nonmutating set }
   |         `- note: attempt to override property here
60 |
61 |     func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:15:22: error: type 'Self.Element' does not conform to protocol 'Hashable'
 13 |     associatedtype Element
 14 |
 15 |     typealias Base = Set<Element>
    |                      `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 16 |
 17 |     var isBuffered: Bool { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:11:26: error: type 'Self.Element' does not conform to protocol 'Hashable'
  9 | public protocol UpdatableSetType: ObservableSetType, UpdatableType {
 10 |     var value: Base { get nonmutating set }
 11 |     func apply(_ update: SetUpdate<Element>)
    |                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 12 |
 13 |     // Optional members
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:17:29: error: type 'Self.Element' does not conform to protocol 'Hashable'
 15 |     func insert(_ member: Element)
 16 |     func removeAll()
 17 |     func formUnion(_ other: Set<Element>)
    |                             `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 18 |     func formIntersection(_ other: Set<Element>)
 19 |     func formSymmetricDifference(_ other: Set<Element>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:18:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
 16 |     func removeAll()
 17 |     func formUnion(_ other: Set<Element>)
 18 |     func formIntersection(_ other: Set<Element>)
    |                                    `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 19 |     func formSymmetricDifference(_ other: Set<Element>)
 20 |     func subtract(_ other: Set<Element>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:19:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
 17 |     func formUnion(_ other: Set<Element>)
 18 |     func formIntersection(_ other: Set<Element>)
 19 |     func formSymmetricDifference(_ other: Set<Element>)
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func subtract(_ other: Set<Element>)
 21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:20:28: error: type 'Self.Element' does not conform to protocol 'Hashable'
 18 |     func formIntersection(_ other: Set<Element>)
 19 |     func formSymmetricDifference(_ other: Set<Element>)
 20 |     func subtract(_ other: Set<Element>)
    |                            `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 21 |
 22 |     var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:22:46: error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func subtract(_ other: Set<Element>)
 21 |
 22 |     var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { get }
    |                                              `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 23 |     var anyUpdatableSet: AnyUpdatableSet<Element> { get }
 24 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:23:26: error: type 'Self.Element' does not conform to protocol 'Hashable'
 21 |
 22 |     var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { get }
 23 |     var anyUpdatableSet: AnyUpdatableSet<Element> { get }
    |                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 24 | }
 25 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:48:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
 46 |     }
 47 |
 48 |     public func formUnion(_ other: Set<Element>) {
    |                                    `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 49 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 50 |         let difference = other.subtracting(value)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:54:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
 52 |     }
 53 |
 54 |     public func formIntersection(_ other: Set<Element>) {
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 55 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 56 |         let difference = value.subtracting(other)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:60:50: error: type 'Self.Element' does not conform to protocol 'Hashable'
 58 |     }
 59 |
 60 |     public func formSymmetricDifference(_ other: Set<Element>) {
    |                                                  `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 61 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 62 |         let value = self.value
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:68:35: error: type 'Self.Element' does not conform to protocol 'Hashable'
 66 |     }
 67 |
 68 |     public func subtract(_ other: Set<Element>) {
    |                                   `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 69 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 70 |         let intersection = value.intersection(other)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:74:45: error: type 'Self.Element' does not conform to protocol 'Hashable'
 72 |     }
 73 |
 74 |     public func apply(_ update: ValueUpdate<Set<Element>>) {
    |                                             `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 75 |         self.apply(update.map { change in SetChange(from: change.old, to: change.new) })
 76 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:78:53: error: type 'Self.Element' does not conform to protocol 'Hashable'
 76 |     }
 77 |
 78 |     public var anyUpdatableValue: AnyUpdatableValue<Set<Element>> {
    |                                                     `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 79 |         return AnyUpdatableValue(
 80 |             getter: { self.value },
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:85:33: error: type 'Self.Element' does not conform to protocol 'Hashable'
 83 |     }
 84 |
 85 |     public var anyUpdatableSet: AnyUpdatableSet<Element> {
    |                                 `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 86 |         return AnyUpdatableSet(box: UpdatableSetBox(self))
 87 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:19:16: error: type 'Self.Element' does not conform to protocol 'Hashable'
 17 |     var isBuffered: Bool { get }
 18 |     var count: Int { get }
 19 |     var value: Set<Element> { get }
    |                `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func contains(_ member: Element) -> Bool
 21 |     func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:21:29: error: type 'Self.Element' does not conform to protocol 'Hashable'
 19 |     var value: Set<Element> { get }
 20 |     func contains(_ member: Element) -> Bool
 21 |     func isSubset(of other: Set<Element>) -> Bool
    |                             `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 22 |     func isSuperset(of other: Set<Element>) -> Bool
 23 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:22:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func contains(_ member: Element) -> Bool
 21 |     func isSubset(of other: Set<Element>) -> Bool
 22 |     func isSuperset(of other: Set<Element>) -> Bool
    |                               `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 23 |
 24 |     var observableCount: AnyObservableValue<Int> { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:26:27: error: type 'Self.Element' does not conform to protocol 'Hashable'
 24 |     var observableCount: AnyObservableValue<Int> { get }
 25 |     var anyObservableValue: AnyObservableValue<Base> { get }
 26 |     var anyObservableSet: AnyObservableSet<Element> { get }
    |                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 27 | }
 28 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:241:58: error: type 'Contents.Element' does not conform to protocol 'Hashable'
239 | }
240 |
241 | final class UpdatableSetBox<Contents: UpdatableSetType>: _AbstractUpdatableSet<Contents.Element> {
    |                                                          `- error: type 'Contents.Element' does not conform to protocol 'Hashable'
242 |     typealias Element = Contents.Element
243 |     typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:243:24: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
241 | final class UpdatableSetBox<Contents: UpdatableSetType>: _AbstractUpdatableSet<Contents.Element> {
242 |     typealias Element = Contents.Element
243 |     typealias Change = SetChange<Element>
    |                        `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
244 |
245 |     let contents: Contents
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:254:25: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
252 |     override var count: Int { return contents.count }
253 |
254 |     override var value: Set<Element> {
    |                         `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
255 |         get { return contents.value }
256 |         set { contents.value = newValue }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:259:35: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
257 |     }
258 |
259 |     override func apply(_ update: SetUpdate<Element>) { contents.apply(update) }
    |                                   `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
260 |
261 |     override func remove(_ member: Element) { contents.remove(member) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:261:19: error: method does not override any method from its superclass
142 |     open func apply(_ update: SetUpdate<Element>) { abstract() }
143 |
144 |     open func remove(_ member: Element) {
    |               `- note: potential overridden instance method 'remove' here
145 |         // Note: This should be kept in sync with the same member in the UpdatableSetType extension above.
146 |         if contains(member) {
    :
259 |     override func apply(_ update: SetUpdate<Element>) { contents.apply(update) }
260 |
261 |     override func remove(_ member: Element) { contents.remove(member) }
    |                   `- error: method does not override any method from its superclass
262 |     override func insert(_ member: Element) { contents.insert(member) }
263 |     override func removeAll() { contents.removeAll() }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:262:19: error: method does not override any method from its superclass
149 |     }
150 |
151 |     open func insert(_ member: Element) {
    |               `- note: potential overridden instance method 'insert' here
152 |         // Note: This should be kept in sync with the same member in the UpdatableSetType extension above.
153 |         if !contains(member) {
    :
260 |
261 |     override func remove(_ member: Element) { contents.remove(member) }
262 |     override func insert(_ member: Element) { contents.insert(member) }
    |                   `- error: method does not override any method from its superclass
263 |     override func removeAll() { contents.removeAll() }
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:264:38: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
262 |     override func insert(_ member: Element) { contents.insert(member) }
263 |     override func removeAll() { contents.removeAll() }
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
    |                                      `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:265:45: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
263 |     override func removeAll() { contents.removeAll() }
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
    |                                             `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:266:52: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
    |                                                    `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
268 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:267:37: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
    |                                     `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
268 |
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:269:19: error: method does not override any method from its superclass
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
268 |
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
    |                   `- error: method does not override any method from its superclass
270 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:120:15: note: potential overridden instance method 'contains' here
118 |     open var isBuffered: Bool { return false }
119 |     open var count: Int { return value.count }
120 |     open func contains(_ member: Element) -> Bool { return value.contains(member) }
    |               `- note: potential overridden instance method 'contains' here
121 |     open func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
122 |     open func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:270:38: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
268 |
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
270 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
    |                                      `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
272 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:271:40: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
270 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
    |                                        `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
272 |
273 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:273:19: error: method does not override any method from its superclass
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
272 |
273 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
    |                   `- error: method does not override any method from its superclass
274 |         contents.add(sink)
275 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:278:19: error: method does not override any method from its superclass
276 |
277 |     @discardableResult
278 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
    |                   `- error: method does not override any method from its superclass
279 |         return contents.remove(sink)
280 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:284:57: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
282 |     override var observableCount: AnyObservableValue<Int> { return contents.observableCount }
283 |
284 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
    |                                                         `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
285 |     override var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { return contents.anyUpdatableValue }
286 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:285:55: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
283 |
284 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
285 |     override var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { return contents.anyUpdatableValue }
    |                                                       `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
286 | }
287 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:30:19: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 28 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 29 |         if contains(member) {
 30 |             apply(SetChange(removed: [member]))
    |                   `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 31 |         }
 32 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:37:19: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 35 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 36 |         if !contains(member) {
 37 |             apply(SetChange(inserted: [member]))
    |                   `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 38 |         }
 39 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:44:19: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 42 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 43 |         if !isEmpty {
 44 |             apply(SetChange(removed: self.value))
    |                   `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 45 |         }
 46 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:51:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 49 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 50 |         let difference = other.subtracting(value)
 51 |         self.apply(SetChange(inserted: difference))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |     }
 53 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:57:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 56 |         let difference = value.subtracting(other)
 57 |         self.apply(SetChange(removed: difference))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 58 |     }
 59 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:63:34: error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 61 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 62 |         let value = self.value
 63 |         let intersection = value.intersection(other)
    |                                  `- error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 64 |         let additions = other.subtracting(value)
 65 |         self.apply(SetChange(removed: intersection, inserted: additions))
Swift.Set:1:11: note: where 'Element' = 'Self.Element'
 1 | extension Set {
   |           `- note: where 'Element' = 'Self.Element'
 2 |     @inlinable public mutating func subtract(_ other: Set<Element>)
 3 |     @inlinable public func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:65:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 63 |         let intersection = value.intersection(other)
 64 |         let additions = other.subtracting(value)
 65 |         self.apply(SetChange(removed: intersection, inserted: additions))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 66 |     }
 67 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:70:34: error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 68 |     public func subtract(_ other: Set<Element>) {
 69 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 70 |         let intersection = value.intersection(other)
    |                                  `- error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 71 |         self.apply(SetChange(removed: intersection))
 72 |     }
Swift.Set:1:11: note: where 'Element' = 'Self.Element'
 1 | extension Set {
   |           `- note: where 'Element' = 'Self.Element'
 2 |     @inlinable public mutating func subtract(_ other: Set<Element>)
 3 |     @inlinable public func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:71:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 69 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 70 |         let intersection = value.intersection(other)
 71 |         self.apply(SetChange(removed: intersection))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 72 |     }
 73 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:75:43: error: generic parameter 'Element' could not be inferred
 73 |
 74 |     public func apply(_ update: ValueUpdate<Set<Element>>) {
 75 |         self.apply(update.map { change in SetChange(from: change.old, to: change.new) })
    |                                           |- error: generic parameter 'Element' could not be inferred
    |                                           `- note: explicitly specify the generic arguments to fix this issue
 76 |     }
 77 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:25: note: 'Element' declared as parameter to type 'SetChange'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |                         `- note: 'Element' declared as parameter to type 'SetChange'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:38:54: error: type 'Self.Element' does not conform to protocol 'Hashable'
 36 |     public var isEmpty: Bool { return count == 0 }
 37 |
 38 |     internal var valueUpdates: AnySource<ValueUpdate<Set<Element>>> {
    |                                                      `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 39 |         var value = self.value
 40 |         return self.updates.map { event in
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:81:25: error: cannot convert value of type '(Update<SetChange<Self.Element>>) -> ()' to expected argument type '(Update<ValueChange<Value>>) -> Void'
 79 |         return AnyUpdatableValue(
 80 |             getter: { self.value },
 81 |             apply: self.apply,
    |                         `- error: cannot convert value of type '(Update<SetChange<Self.Element>>) -> ()' to expected argument type '(Update<ValueChange<Value>>) -> Void'
 82 |             updates: self.valueUpdates)
 83 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Update.swift:22:20: note: arguments to generic parameter 'Change' ('ValueChange<Value>' and 'SetChange<Self.Element>') are expected to be equal
20 | ///
21 | /// Note that is perfectly legal for a transaction to include no actual changes.
22 | public enum Update<Change: ChangeType> {
   |                    `- note: arguments to generic parameter 'Change' ('ValueChange<Value>' and 'SetChange<Self.Element>') are expected to be equal
23 |     public typealias Value = Change.Value
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:86:37: error: cannot convert value of type 'UpdatableSetBox<Self>' to expected argument type '_AbstractUpdatableSet<Element>'
 84 |
 85 |     public var anyUpdatableSet: AnyUpdatableSet<Element> {
 86 |         return AnyUpdatableSet(box: UpdatableSetBox(self))
    |                                     `- error: cannot convert value of type 'UpdatableSetBox<Self>' to expected argument type '_AbstractUpdatableSet<Element>'
 87 |     }
 88 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:33:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
 33 |     public func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
    |                                    `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 34 |     public func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
 35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:34:38: error: type 'Self.Element' does not conform to protocol 'Hashable'
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
 33 |     public func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
 34 |     public func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
    |                                      `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 35 |
 36 |     public var isEmpty: Bool { return count == 0 }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:68:34: error: type 'Self.Element' does not conform to protocol 'Hashable'
 66 |     }
 67 |
 68 |     public var anyObservableSet: AnyObservableSet<Element> {
    |                                  `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 69 |         return AnyObservableSet(box: ObservableSetBox(self))
 70 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:194:25: error: cannot convert value of type '(Update<SetChange<Element>>) -> ()' to expected argument type '(Update<ValueChange<Set<Element>>>) -> Void'
192 |         return AnyUpdatableValue(
193 |             getter: { self.value },
194 |             apply: self.apply,
    |                         `- error: cannot convert value of type '(Update<SetChange<Element>>) -> ()' to expected argument type '(Update<ValueChange<Set<Element>>>) -> Void'
195 |             updates: self.valueUpdates)
196 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Update.swift:22:20: note: arguments to generic parameter 'Change' ('ValueChange<Set<Element>>' and 'SetChange<Element>') are expected to be equal
20 | ///
21 | /// Note that is perfectly legal for a transaction to include no actual changes.
22 | public enum Update<Change: ChangeType> {
   |                    `- note: arguments to generic parameter 'Change' ('ValueChange<Set<Element>>' and 'SetChange<Element>') are expected to be equal
23 |     public typealias Value = Change.Value
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:274:18: error: instance method 'add' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
272 |
273 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
274 |         contents.add(sink)
    |                  `- error: instance method 'add' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
275 |     }
276 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
14 |     var value: Value { get }
15 |
16 |     func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
17 |
18 |     @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:279:25: error: instance method 'remove' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
277 |     @discardableResult
278 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
279 |         return contents.remove(sink)
    |                         `- error: instance method 'remove' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
280 |     }
281 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
17 |
18 |     @discardableResult
19 |     func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
20 | }
21 |
[180/188] Compiling GlueKit UISwitch Glue.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 22 |
 23 |     // Required members
 24 |     var value: [Element] { get nonmutating set }
    |         `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 25 |     func apply(_ update: ArrayUpdate<Element>)
 26 |     subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 |     ///
58 |     /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 |     var value: Value { get nonmutating set }
   |         `- note: attempt to override property here
60 |
61 |     func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:15:22: error: type 'Self.Element' does not conform to protocol 'Hashable'
 13 |     associatedtype Element
 14 |
 15 |     typealias Base = Set<Element>
    |                      `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 16 |
 17 |     var isBuffered: Bool { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:11:26: error: type 'Self.Element' does not conform to protocol 'Hashable'
  9 | public protocol UpdatableSetType: ObservableSetType, UpdatableType {
 10 |     var value: Base { get nonmutating set }
 11 |     func apply(_ update: SetUpdate<Element>)
    |                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 12 |
 13 |     // Optional members
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:17:29: error: type 'Self.Element' does not conform to protocol 'Hashable'
 15 |     func insert(_ member: Element)
 16 |     func removeAll()
 17 |     func formUnion(_ other: Set<Element>)
    |                             `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 18 |     func formIntersection(_ other: Set<Element>)
 19 |     func formSymmetricDifference(_ other: Set<Element>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:18:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
 16 |     func removeAll()
 17 |     func formUnion(_ other: Set<Element>)
 18 |     func formIntersection(_ other: Set<Element>)
    |                                    `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 19 |     func formSymmetricDifference(_ other: Set<Element>)
 20 |     func subtract(_ other: Set<Element>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:19:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
 17 |     func formUnion(_ other: Set<Element>)
 18 |     func formIntersection(_ other: Set<Element>)
 19 |     func formSymmetricDifference(_ other: Set<Element>)
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func subtract(_ other: Set<Element>)
 21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:20:28: error: type 'Self.Element' does not conform to protocol 'Hashable'
 18 |     func formIntersection(_ other: Set<Element>)
 19 |     func formSymmetricDifference(_ other: Set<Element>)
 20 |     func subtract(_ other: Set<Element>)
    |                            `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 21 |
 22 |     var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:22:46: error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func subtract(_ other: Set<Element>)
 21 |
 22 |     var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { get }
    |                                              `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 23 |     var anyUpdatableSet: AnyUpdatableSet<Element> { get }
 24 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:23:26: error: type 'Self.Element' does not conform to protocol 'Hashable'
 21 |
 22 |     var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { get }
 23 |     var anyUpdatableSet: AnyUpdatableSet<Element> { get }
    |                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 24 | }
 25 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:48:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
 46 |     }
 47 |
 48 |     public func formUnion(_ other: Set<Element>) {
    |                                    `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 49 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 50 |         let difference = other.subtracting(value)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:54:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
 52 |     }
 53 |
 54 |     public func formIntersection(_ other: Set<Element>) {
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 55 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 56 |         let difference = value.subtracting(other)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:60:50: error: type 'Self.Element' does not conform to protocol 'Hashable'
 58 |     }
 59 |
 60 |     public func formSymmetricDifference(_ other: Set<Element>) {
    |                                                  `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 61 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 62 |         let value = self.value
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:68:35: error: type 'Self.Element' does not conform to protocol 'Hashable'
 66 |     }
 67 |
 68 |     public func subtract(_ other: Set<Element>) {
    |                                   `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 69 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 70 |         let intersection = value.intersection(other)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:74:45: error: type 'Self.Element' does not conform to protocol 'Hashable'
 72 |     }
 73 |
 74 |     public func apply(_ update: ValueUpdate<Set<Element>>) {
    |                                             `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 75 |         self.apply(update.map { change in SetChange(from: change.old, to: change.new) })
 76 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:78:53: error: type 'Self.Element' does not conform to protocol 'Hashable'
 76 |     }
 77 |
 78 |     public var anyUpdatableValue: AnyUpdatableValue<Set<Element>> {
    |                                                     `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 79 |         return AnyUpdatableValue(
 80 |             getter: { self.value },
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:85:33: error: type 'Self.Element' does not conform to protocol 'Hashable'
 83 |     }
 84 |
 85 |     public var anyUpdatableSet: AnyUpdatableSet<Element> {
    |                                 `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 86 |         return AnyUpdatableSet(box: UpdatableSetBox(self))
 87 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:19:16: error: type 'Self.Element' does not conform to protocol 'Hashable'
 17 |     var isBuffered: Bool { get }
 18 |     var count: Int { get }
 19 |     var value: Set<Element> { get }
    |                `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func contains(_ member: Element) -> Bool
 21 |     func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:21:29: error: type 'Self.Element' does not conform to protocol 'Hashable'
 19 |     var value: Set<Element> { get }
 20 |     func contains(_ member: Element) -> Bool
 21 |     func isSubset(of other: Set<Element>) -> Bool
    |                             `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 22 |     func isSuperset(of other: Set<Element>) -> Bool
 23 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:22:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func contains(_ member: Element) -> Bool
 21 |     func isSubset(of other: Set<Element>) -> Bool
 22 |     func isSuperset(of other: Set<Element>) -> Bool
    |                               `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 23 |
 24 |     var observableCount: AnyObservableValue<Int> { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:26:27: error: type 'Self.Element' does not conform to protocol 'Hashable'
 24 |     var observableCount: AnyObservableValue<Int> { get }
 25 |     var anyObservableValue: AnyObservableValue<Base> { get }
 26 |     var anyObservableSet: AnyObservableSet<Element> { get }
    |                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 27 | }
 28 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:241:58: error: type 'Contents.Element' does not conform to protocol 'Hashable'
239 | }
240 |
241 | final class UpdatableSetBox<Contents: UpdatableSetType>: _AbstractUpdatableSet<Contents.Element> {
    |                                                          `- error: type 'Contents.Element' does not conform to protocol 'Hashable'
242 |     typealias Element = Contents.Element
243 |     typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:243:24: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
241 | final class UpdatableSetBox<Contents: UpdatableSetType>: _AbstractUpdatableSet<Contents.Element> {
242 |     typealias Element = Contents.Element
243 |     typealias Change = SetChange<Element>
    |                        `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
244 |
245 |     let contents: Contents
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:254:25: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
252 |     override var count: Int { return contents.count }
253 |
254 |     override var value: Set<Element> {
    |                         `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
255 |         get { return contents.value }
256 |         set { contents.value = newValue }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:259:35: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
257 |     }
258 |
259 |     override func apply(_ update: SetUpdate<Element>) { contents.apply(update) }
    |                                   `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
260 |
261 |     override func remove(_ member: Element) { contents.remove(member) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:261:19: error: method does not override any method from its superclass
142 |     open func apply(_ update: SetUpdate<Element>) { abstract() }
143 |
144 |     open func remove(_ member: Element) {
    |               `- note: potential overridden instance method 'remove' here
145 |         // Note: This should be kept in sync with the same member in the UpdatableSetType extension above.
146 |         if contains(member) {
    :
259 |     override func apply(_ update: SetUpdate<Element>) { contents.apply(update) }
260 |
261 |     override func remove(_ member: Element) { contents.remove(member) }
    |                   `- error: method does not override any method from its superclass
262 |     override func insert(_ member: Element) { contents.insert(member) }
263 |     override func removeAll() { contents.removeAll() }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:262:19: error: method does not override any method from its superclass
149 |     }
150 |
151 |     open func insert(_ member: Element) {
    |               `- note: potential overridden instance method 'insert' here
152 |         // Note: This should be kept in sync with the same member in the UpdatableSetType extension above.
153 |         if !contains(member) {
    :
260 |
261 |     override func remove(_ member: Element) { contents.remove(member) }
262 |     override func insert(_ member: Element) { contents.insert(member) }
    |                   `- error: method does not override any method from its superclass
263 |     override func removeAll() { contents.removeAll() }
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:264:38: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
262 |     override func insert(_ member: Element) { contents.insert(member) }
263 |     override func removeAll() { contents.removeAll() }
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
    |                                      `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:265:45: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
263 |     override func removeAll() { contents.removeAll() }
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
    |                                             `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:266:52: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
    |                                                    `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
268 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:267:37: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
    |                                     `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
268 |
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:269:19: error: method does not override any method from its superclass
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
268 |
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
    |                   `- error: method does not override any method from its superclass
270 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:120:15: note: potential overridden instance method 'contains' here
118 |     open var isBuffered: Bool { return false }
119 |     open var count: Int { return value.count }
120 |     open func contains(_ member: Element) -> Bool { return value.contains(member) }
    |               `- note: potential overridden instance method 'contains' here
121 |     open func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
122 |     open func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:270:38: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
268 |
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
270 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
    |                                      `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
272 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:271:40: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
270 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
    |                                        `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
272 |
273 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:273:19: error: method does not override any method from its superclass
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
272 |
273 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
    |                   `- error: method does not override any method from its superclass
274 |         contents.add(sink)
275 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:278:19: error: method does not override any method from its superclass
276 |
277 |     @discardableResult
278 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
    |                   `- error: method does not override any method from its superclass
279 |         return contents.remove(sink)
280 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:284:57: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
282 |     override var observableCount: AnyObservableValue<Int> { return contents.observableCount }
283 |
284 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
    |                                                         `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
285 |     override var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { return contents.anyUpdatableValue }
286 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:285:55: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
283 |
284 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
285 |     override var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { return contents.anyUpdatableValue }
    |                                                       `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
286 | }
287 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:30:19: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 28 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 29 |         if contains(member) {
 30 |             apply(SetChange(removed: [member]))
    |                   `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 31 |         }
 32 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:37:19: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 35 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 36 |         if !contains(member) {
 37 |             apply(SetChange(inserted: [member]))
    |                   `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 38 |         }
 39 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:44:19: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 42 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 43 |         if !isEmpty {
 44 |             apply(SetChange(removed: self.value))
    |                   `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 45 |         }
 46 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:51:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 49 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 50 |         let difference = other.subtracting(value)
 51 |         self.apply(SetChange(inserted: difference))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |     }
 53 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:57:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 56 |         let difference = value.subtracting(other)
 57 |         self.apply(SetChange(removed: difference))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 58 |     }
 59 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:63:34: error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 61 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 62 |         let value = self.value
 63 |         let intersection = value.intersection(other)
    |                                  `- error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 64 |         let additions = other.subtracting(value)
 65 |         self.apply(SetChange(removed: intersection, inserted: additions))
Swift.Set:1:11: note: where 'Element' = 'Self.Element'
 1 | extension Set {
   |           `- note: where 'Element' = 'Self.Element'
 2 |     @inlinable public mutating func subtract(_ other: Set<Element>)
 3 |     @inlinable public func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:65:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 63 |         let intersection = value.intersection(other)
 64 |         let additions = other.subtracting(value)
 65 |         self.apply(SetChange(removed: intersection, inserted: additions))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 66 |     }
 67 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:70:34: error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 68 |     public func subtract(_ other: Set<Element>) {
 69 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 70 |         let intersection = value.intersection(other)
    |                                  `- error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 71 |         self.apply(SetChange(removed: intersection))
 72 |     }
Swift.Set:1:11: note: where 'Element' = 'Self.Element'
 1 | extension Set {
   |           `- note: where 'Element' = 'Self.Element'
 2 |     @inlinable public mutating func subtract(_ other: Set<Element>)
 3 |     @inlinable public func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:71:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 69 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 70 |         let intersection = value.intersection(other)
 71 |         self.apply(SetChange(removed: intersection))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 72 |     }
 73 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:75:43: error: generic parameter 'Element' could not be inferred
 73 |
 74 |     public func apply(_ update: ValueUpdate<Set<Element>>) {
 75 |         self.apply(update.map { change in SetChange(from: change.old, to: change.new) })
    |                                           |- error: generic parameter 'Element' could not be inferred
    |                                           `- note: explicitly specify the generic arguments to fix this issue
 76 |     }
 77 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:25: note: 'Element' declared as parameter to type 'SetChange'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |                         `- note: 'Element' declared as parameter to type 'SetChange'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:38:54: error: type 'Self.Element' does not conform to protocol 'Hashable'
 36 |     public var isEmpty: Bool { return count == 0 }
 37 |
 38 |     internal var valueUpdates: AnySource<ValueUpdate<Set<Element>>> {
    |                                                      `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 39 |         var value = self.value
 40 |         return self.updates.map { event in
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:81:25: error: cannot convert value of type '(Update<SetChange<Self.Element>>) -> ()' to expected argument type '(Update<ValueChange<Value>>) -> Void'
 79 |         return AnyUpdatableValue(
 80 |             getter: { self.value },
 81 |             apply: self.apply,
    |                         `- error: cannot convert value of type '(Update<SetChange<Self.Element>>) -> ()' to expected argument type '(Update<ValueChange<Value>>) -> Void'
 82 |             updates: self.valueUpdates)
 83 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Update.swift:22:20: note: arguments to generic parameter 'Change' ('ValueChange<Value>' and 'SetChange<Self.Element>') are expected to be equal
20 | ///
21 | /// Note that is perfectly legal for a transaction to include no actual changes.
22 | public enum Update<Change: ChangeType> {
   |                    `- note: arguments to generic parameter 'Change' ('ValueChange<Value>' and 'SetChange<Self.Element>') are expected to be equal
23 |     public typealias Value = Change.Value
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:86:37: error: cannot convert value of type 'UpdatableSetBox<Self>' to expected argument type '_AbstractUpdatableSet<Element>'
 84 |
 85 |     public var anyUpdatableSet: AnyUpdatableSet<Element> {
 86 |         return AnyUpdatableSet(box: UpdatableSetBox(self))
    |                                     `- error: cannot convert value of type 'UpdatableSetBox<Self>' to expected argument type '_AbstractUpdatableSet<Element>'
 87 |     }
 88 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:33:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
 33 |     public func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
    |                                    `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 34 |     public func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
 35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:34:38: error: type 'Self.Element' does not conform to protocol 'Hashable'
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
 33 |     public func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
 34 |     public func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
    |                                      `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 35 |
 36 |     public var isEmpty: Bool { return count == 0 }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:68:34: error: type 'Self.Element' does not conform to protocol 'Hashable'
 66 |     }
 67 |
 68 |     public var anyObservableSet: AnyObservableSet<Element> {
    |                                  `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 69 |         return AnyObservableSet(box: ObservableSetBox(self))
 70 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:194:25: error: cannot convert value of type '(Update<SetChange<Element>>) -> ()' to expected argument type '(Update<ValueChange<Set<Element>>>) -> Void'
192 |         return AnyUpdatableValue(
193 |             getter: { self.value },
194 |             apply: self.apply,
    |                         `- error: cannot convert value of type '(Update<SetChange<Element>>) -> ()' to expected argument type '(Update<ValueChange<Set<Element>>>) -> Void'
195 |             updates: self.valueUpdates)
196 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Update.swift:22:20: note: arguments to generic parameter 'Change' ('ValueChange<Set<Element>>' and 'SetChange<Element>') are expected to be equal
20 | ///
21 | /// Note that is perfectly legal for a transaction to include no actual changes.
22 | public enum Update<Change: ChangeType> {
   |                    `- note: arguments to generic parameter 'Change' ('ValueChange<Set<Element>>' and 'SetChange<Element>') are expected to be equal
23 |     public typealias Value = Change.Value
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:274:18: error: instance method 'add' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
272 |
273 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
274 |         contents.add(sink)
    |                  `- error: instance method 'add' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
275 |     }
276 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
14 |     var value: Value { get }
15 |
16 |     func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
17 |
18 |     @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:279:25: error: instance method 'remove' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
277 |     @discardableResult
278 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
279 |         return contents.remove(sink)
    |                         `- error: instance method 'remove' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
280 |     }
281 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
17 |
18 |     @discardableResult
19 |     func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
20 | }
21 |
[181/188] Compiling GlueKit UpdatableArray.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 22 |
 23 |     // Required members
 24 |     var value: [Element] { get nonmutating set }
    |         `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 25 |     func apply(_ update: ArrayUpdate<Element>)
 26 |     subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 |     ///
58 |     /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 |     var value: Value { get nonmutating set }
   |         `- note: attempt to override property here
60 |
61 |     func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:15:22: error: type 'Self.Element' does not conform to protocol 'Hashable'
 13 |     associatedtype Element
 14 |
 15 |     typealias Base = Set<Element>
    |                      `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 16 |
 17 |     var isBuffered: Bool { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:11:26: error: type 'Self.Element' does not conform to protocol 'Hashable'
  9 | public protocol UpdatableSetType: ObservableSetType, UpdatableType {
 10 |     var value: Base { get nonmutating set }
 11 |     func apply(_ update: SetUpdate<Element>)
    |                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 12 |
 13 |     // Optional members
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:17:29: error: type 'Self.Element' does not conform to protocol 'Hashable'
 15 |     func insert(_ member: Element)
 16 |     func removeAll()
 17 |     func formUnion(_ other: Set<Element>)
    |                             `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 18 |     func formIntersection(_ other: Set<Element>)
 19 |     func formSymmetricDifference(_ other: Set<Element>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:18:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
 16 |     func removeAll()
 17 |     func formUnion(_ other: Set<Element>)
 18 |     func formIntersection(_ other: Set<Element>)
    |                                    `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 19 |     func formSymmetricDifference(_ other: Set<Element>)
 20 |     func subtract(_ other: Set<Element>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:19:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
 17 |     func formUnion(_ other: Set<Element>)
 18 |     func formIntersection(_ other: Set<Element>)
 19 |     func formSymmetricDifference(_ other: Set<Element>)
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func subtract(_ other: Set<Element>)
 21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:20:28: error: type 'Self.Element' does not conform to protocol 'Hashable'
 18 |     func formIntersection(_ other: Set<Element>)
 19 |     func formSymmetricDifference(_ other: Set<Element>)
 20 |     func subtract(_ other: Set<Element>)
    |                            `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 21 |
 22 |     var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:22:46: error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func subtract(_ other: Set<Element>)
 21 |
 22 |     var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { get }
    |                                              `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 23 |     var anyUpdatableSet: AnyUpdatableSet<Element> { get }
 24 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:23:26: error: type 'Self.Element' does not conform to protocol 'Hashable'
 21 |
 22 |     var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { get }
 23 |     var anyUpdatableSet: AnyUpdatableSet<Element> { get }
    |                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 24 | }
 25 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:48:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
 46 |     }
 47 |
 48 |     public func formUnion(_ other: Set<Element>) {
    |                                    `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 49 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 50 |         let difference = other.subtracting(value)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:54:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
 52 |     }
 53 |
 54 |     public func formIntersection(_ other: Set<Element>) {
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 55 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 56 |         let difference = value.subtracting(other)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:60:50: error: type 'Self.Element' does not conform to protocol 'Hashable'
 58 |     }
 59 |
 60 |     public func formSymmetricDifference(_ other: Set<Element>) {
    |                                                  `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 61 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 62 |         let value = self.value
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:68:35: error: type 'Self.Element' does not conform to protocol 'Hashable'
 66 |     }
 67 |
 68 |     public func subtract(_ other: Set<Element>) {
    |                                   `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 69 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 70 |         let intersection = value.intersection(other)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:74:45: error: type 'Self.Element' does not conform to protocol 'Hashable'
 72 |     }
 73 |
 74 |     public func apply(_ update: ValueUpdate<Set<Element>>) {
    |                                             `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 75 |         self.apply(update.map { change in SetChange(from: change.old, to: change.new) })
 76 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:78:53: error: type 'Self.Element' does not conform to protocol 'Hashable'
 76 |     }
 77 |
 78 |     public var anyUpdatableValue: AnyUpdatableValue<Set<Element>> {
    |                                                     `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 79 |         return AnyUpdatableValue(
 80 |             getter: { self.value },
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:85:33: error: type 'Self.Element' does not conform to protocol 'Hashable'
 83 |     }
 84 |
 85 |     public var anyUpdatableSet: AnyUpdatableSet<Element> {
    |                                 `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 86 |         return AnyUpdatableSet(box: UpdatableSetBox(self))
 87 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:19:16: error: type 'Self.Element' does not conform to protocol 'Hashable'
 17 |     var isBuffered: Bool { get }
 18 |     var count: Int { get }
 19 |     var value: Set<Element> { get }
    |                `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func contains(_ member: Element) -> Bool
 21 |     func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:21:29: error: type 'Self.Element' does not conform to protocol 'Hashable'
 19 |     var value: Set<Element> { get }
 20 |     func contains(_ member: Element) -> Bool
 21 |     func isSubset(of other: Set<Element>) -> Bool
    |                             `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 22 |     func isSuperset(of other: Set<Element>) -> Bool
 23 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:22:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func contains(_ member: Element) -> Bool
 21 |     func isSubset(of other: Set<Element>) -> Bool
 22 |     func isSuperset(of other: Set<Element>) -> Bool
    |                               `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 23 |
 24 |     var observableCount: AnyObservableValue<Int> { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:26:27: error: type 'Self.Element' does not conform to protocol 'Hashable'
 24 |     var observableCount: AnyObservableValue<Int> { get }
 25 |     var anyObservableValue: AnyObservableValue<Base> { get }
 26 |     var anyObservableSet: AnyObservableSet<Element> { get }
    |                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 27 | }
 28 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:241:58: error: type 'Contents.Element' does not conform to protocol 'Hashable'
239 | }
240 |
241 | final class UpdatableSetBox<Contents: UpdatableSetType>: _AbstractUpdatableSet<Contents.Element> {
    |                                                          `- error: type 'Contents.Element' does not conform to protocol 'Hashable'
242 |     typealias Element = Contents.Element
243 |     typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:243:24: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
241 | final class UpdatableSetBox<Contents: UpdatableSetType>: _AbstractUpdatableSet<Contents.Element> {
242 |     typealias Element = Contents.Element
243 |     typealias Change = SetChange<Element>
    |                        `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
244 |
245 |     let contents: Contents
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:254:25: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
252 |     override var count: Int { return contents.count }
253 |
254 |     override var value: Set<Element> {
    |                         `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
255 |         get { return contents.value }
256 |         set { contents.value = newValue }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:259:35: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
257 |     }
258 |
259 |     override func apply(_ update: SetUpdate<Element>) { contents.apply(update) }
    |                                   `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
260 |
261 |     override func remove(_ member: Element) { contents.remove(member) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:261:19: error: method does not override any method from its superclass
142 |     open func apply(_ update: SetUpdate<Element>) { abstract() }
143 |
144 |     open func remove(_ member: Element) {
    |               `- note: potential overridden instance method 'remove' here
145 |         // Note: This should be kept in sync with the same member in the UpdatableSetType extension above.
146 |         if contains(member) {
    :
259 |     override func apply(_ update: SetUpdate<Element>) { contents.apply(update) }
260 |
261 |     override func remove(_ member: Element) { contents.remove(member) }
    |                   `- error: method does not override any method from its superclass
262 |     override func insert(_ member: Element) { contents.insert(member) }
263 |     override func removeAll() { contents.removeAll() }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:262:19: error: method does not override any method from its superclass
149 |     }
150 |
151 |     open func insert(_ member: Element) {
    |               `- note: potential overridden instance method 'insert' here
152 |         // Note: This should be kept in sync with the same member in the UpdatableSetType extension above.
153 |         if !contains(member) {
    :
260 |
261 |     override func remove(_ member: Element) { contents.remove(member) }
262 |     override func insert(_ member: Element) { contents.insert(member) }
    |                   `- error: method does not override any method from its superclass
263 |     override func removeAll() { contents.removeAll() }
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:264:38: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
262 |     override func insert(_ member: Element) { contents.insert(member) }
263 |     override func removeAll() { contents.removeAll() }
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
    |                                      `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:265:45: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
263 |     override func removeAll() { contents.removeAll() }
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
    |                                             `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:266:52: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
    |                                                    `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
268 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:267:37: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
    |                                     `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
268 |
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:269:19: error: method does not override any method from its superclass
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
268 |
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
    |                   `- error: method does not override any method from its superclass
270 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:120:15: note: potential overridden instance method 'contains' here
118 |     open var isBuffered: Bool { return false }
119 |     open var count: Int { return value.count }
120 |     open func contains(_ member: Element) -> Bool { return value.contains(member) }
    |               `- note: potential overridden instance method 'contains' here
121 |     open func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
122 |     open func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:270:38: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
268 |
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
270 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
    |                                      `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
272 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:271:40: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
270 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
    |                                        `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
272 |
273 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:273:19: error: method does not override any method from its superclass
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
272 |
273 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
    |                   `- error: method does not override any method from its superclass
274 |         contents.add(sink)
275 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:278:19: error: method does not override any method from its superclass
276 |
277 |     @discardableResult
278 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
    |                   `- error: method does not override any method from its superclass
279 |         return contents.remove(sink)
280 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:284:57: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
282 |     override var observableCount: AnyObservableValue<Int> { return contents.observableCount }
283 |
284 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
    |                                                         `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
285 |     override var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { return contents.anyUpdatableValue }
286 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:285:55: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
283 |
284 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
285 |     override var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { return contents.anyUpdatableValue }
    |                                                       `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
286 | }
287 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:30:19: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 28 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 29 |         if contains(member) {
 30 |             apply(SetChange(removed: [member]))
    |                   `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 31 |         }
 32 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:37:19: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 35 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 36 |         if !contains(member) {
 37 |             apply(SetChange(inserted: [member]))
    |                   `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 38 |         }
 39 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:44:19: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 42 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 43 |         if !isEmpty {
 44 |             apply(SetChange(removed: self.value))
    |                   `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 45 |         }
 46 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:51:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 49 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 50 |         let difference = other.subtracting(value)
 51 |         self.apply(SetChange(inserted: difference))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |     }
 53 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:57:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 56 |         let difference = value.subtracting(other)
 57 |         self.apply(SetChange(removed: difference))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 58 |     }
 59 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:63:34: error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 61 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 62 |         let value = self.value
 63 |         let intersection = value.intersection(other)
    |                                  `- error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 64 |         let additions = other.subtracting(value)
 65 |         self.apply(SetChange(removed: intersection, inserted: additions))
Swift.Set:1:11: note: where 'Element' = 'Self.Element'
 1 | extension Set {
   |           `- note: where 'Element' = 'Self.Element'
 2 |     @inlinable public mutating func subtract(_ other: Set<Element>)
 3 |     @inlinable public func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:65:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 63 |         let intersection = value.intersection(other)
 64 |         let additions = other.subtracting(value)
 65 |         self.apply(SetChange(removed: intersection, inserted: additions))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 66 |     }
 67 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:70:34: error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 68 |     public func subtract(_ other: Set<Element>) {
 69 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 70 |         let intersection = value.intersection(other)
    |                                  `- error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 71 |         self.apply(SetChange(removed: intersection))
 72 |     }
Swift.Set:1:11: note: where 'Element' = 'Self.Element'
 1 | extension Set {
   |           `- note: where 'Element' = 'Self.Element'
 2 |     @inlinable public mutating func subtract(_ other: Set<Element>)
 3 |     @inlinable public func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:71:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 69 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 70 |         let intersection = value.intersection(other)
 71 |         self.apply(SetChange(removed: intersection))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 72 |     }
 73 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:75:43: error: generic parameter 'Element' could not be inferred
 73 |
 74 |     public func apply(_ update: ValueUpdate<Set<Element>>) {
 75 |         self.apply(update.map { change in SetChange(from: change.old, to: change.new) })
    |                                           |- error: generic parameter 'Element' could not be inferred
    |                                           `- note: explicitly specify the generic arguments to fix this issue
 76 |     }
 77 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:25: note: 'Element' declared as parameter to type 'SetChange'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |                         `- note: 'Element' declared as parameter to type 'SetChange'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:38:54: error: type 'Self.Element' does not conform to protocol 'Hashable'
 36 |     public var isEmpty: Bool { return count == 0 }
 37 |
 38 |     internal var valueUpdates: AnySource<ValueUpdate<Set<Element>>> {
    |                                                      `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 39 |         var value = self.value
 40 |         return self.updates.map { event in
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:81:25: error: cannot convert value of type '(Update<SetChange<Self.Element>>) -> ()' to expected argument type '(Update<ValueChange<Value>>) -> Void'
 79 |         return AnyUpdatableValue(
 80 |             getter: { self.value },
 81 |             apply: self.apply,
    |                         `- error: cannot convert value of type '(Update<SetChange<Self.Element>>) -> ()' to expected argument type '(Update<ValueChange<Value>>) -> Void'
 82 |             updates: self.valueUpdates)
 83 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Update.swift:22:20: note: arguments to generic parameter 'Change' ('ValueChange<Value>' and 'SetChange<Self.Element>') are expected to be equal
20 | ///
21 | /// Note that is perfectly legal for a transaction to include no actual changes.
22 | public enum Update<Change: ChangeType> {
   |                    `- note: arguments to generic parameter 'Change' ('ValueChange<Value>' and 'SetChange<Self.Element>') are expected to be equal
23 |     public typealias Value = Change.Value
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:86:37: error: cannot convert value of type 'UpdatableSetBox<Self>' to expected argument type '_AbstractUpdatableSet<Element>'
 84 |
 85 |     public var anyUpdatableSet: AnyUpdatableSet<Element> {
 86 |         return AnyUpdatableSet(box: UpdatableSetBox(self))
    |                                     `- error: cannot convert value of type 'UpdatableSetBox<Self>' to expected argument type '_AbstractUpdatableSet<Element>'
 87 |     }
 88 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:33:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
 33 |     public func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
    |                                    `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 34 |     public func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
 35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:34:38: error: type 'Self.Element' does not conform to protocol 'Hashable'
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
 33 |     public func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
 34 |     public func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
    |                                      `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 35 |
 36 |     public var isEmpty: Bool { return count == 0 }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:68:34: error: type 'Self.Element' does not conform to protocol 'Hashable'
 66 |     }
 67 |
 68 |     public var anyObservableSet: AnyObservableSet<Element> {
    |                                  `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 69 |         return AnyObservableSet(box: ObservableSetBox(self))
 70 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:194:25: error: cannot convert value of type '(Update<SetChange<Element>>) -> ()' to expected argument type '(Update<ValueChange<Set<Element>>>) -> Void'
192 |         return AnyUpdatableValue(
193 |             getter: { self.value },
194 |             apply: self.apply,
    |                         `- error: cannot convert value of type '(Update<SetChange<Element>>) -> ()' to expected argument type '(Update<ValueChange<Set<Element>>>) -> Void'
195 |             updates: self.valueUpdates)
196 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Update.swift:22:20: note: arguments to generic parameter 'Change' ('ValueChange<Set<Element>>' and 'SetChange<Element>') are expected to be equal
20 | ///
21 | /// Note that is perfectly legal for a transaction to include no actual changes.
22 | public enum Update<Change: ChangeType> {
   |                    `- note: arguments to generic parameter 'Change' ('ValueChange<Set<Element>>' and 'SetChange<Element>') are expected to be equal
23 |     public typealias Value = Change.Value
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:274:18: error: instance method 'add' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
272 |
273 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
274 |         contents.add(sink)
    |                  `- error: instance method 'add' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
275 |     }
276 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
14 |     var value: Value { get }
15 |
16 |     func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
17 |
18 |     @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:279:25: error: instance method 'remove' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
277 |     @discardableResult
278 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
279 |         return contents.remove(sink)
    |                         `- error: instance method 'remove' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
280 |     }
281 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
17 |
18 |     @discardableResult
19 |     func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
20 | }
21 |
[182/188] Compiling GlueKit UpdatableSet.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 22 |
 23 |     // Required members
 24 |     var value: [Element] { get nonmutating set }
    |         `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 25 |     func apply(_ update: ArrayUpdate<Element>)
 26 |     subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 |     ///
58 |     /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 |     var value: Value { get nonmutating set }
   |         `- note: attempt to override property here
60 |
61 |     func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:15:22: error: type 'Self.Element' does not conform to protocol 'Hashable'
 13 |     associatedtype Element
 14 |
 15 |     typealias Base = Set<Element>
    |                      `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 16 |
 17 |     var isBuffered: Bool { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:11:26: error: type 'Self.Element' does not conform to protocol 'Hashable'
  9 | public protocol UpdatableSetType: ObservableSetType, UpdatableType {
 10 |     var value: Base { get nonmutating set }
 11 |     func apply(_ update: SetUpdate<Element>)
    |                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 12 |
 13 |     // Optional members
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:17:29: error: type 'Self.Element' does not conform to protocol 'Hashable'
 15 |     func insert(_ member: Element)
 16 |     func removeAll()
 17 |     func formUnion(_ other: Set<Element>)
    |                             `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 18 |     func formIntersection(_ other: Set<Element>)
 19 |     func formSymmetricDifference(_ other: Set<Element>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:18:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
 16 |     func removeAll()
 17 |     func formUnion(_ other: Set<Element>)
 18 |     func formIntersection(_ other: Set<Element>)
    |                                    `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 19 |     func formSymmetricDifference(_ other: Set<Element>)
 20 |     func subtract(_ other: Set<Element>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:19:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
 17 |     func formUnion(_ other: Set<Element>)
 18 |     func formIntersection(_ other: Set<Element>)
 19 |     func formSymmetricDifference(_ other: Set<Element>)
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func subtract(_ other: Set<Element>)
 21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:20:28: error: type 'Self.Element' does not conform to protocol 'Hashable'
 18 |     func formIntersection(_ other: Set<Element>)
 19 |     func formSymmetricDifference(_ other: Set<Element>)
 20 |     func subtract(_ other: Set<Element>)
    |                            `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 21 |
 22 |     var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:22:46: error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func subtract(_ other: Set<Element>)
 21 |
 22 |     var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { get }
    |                                              `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 23 |     var anyUpdatableSet: AnyUpdatableSet<Element> { get }
 24 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:23:26: error: type 'Self.Element' does not conform to protocol 'Hashable'
 21 |
 22 |     var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { get }
 23 |     var anyUpdatableSet: AnyUpdatableSet<Element> { get }
    |                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 24 | }
 25 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:48:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
 46 |     }
 47 |
 48 |     public func formUnion(_ other: Set<Element>) {
    |                                    `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 49 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 50 |         let difference = other.subtracting(value)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:54:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
 52 |     }
 53 |
 54 |     public func formIntersection(_ other: Set<Element>) {
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 55 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 56 |         let difference = value.subtracting(other)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:60:50: error: type 'Self.Element' does not conform to protocol 'Hashable'
 58 |     }
 59 |
 60 |     public func formSymmetricDifference(_ other: Set<Element>) {
    |                                                  `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 61 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 62 |         let value = self.value
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:68:35: error: type 'Self.Element' does not conform to protocol 'Hashable'
 66 |     }
 67 |
 68 |     public func subtract(_ other: Set<Element>) {
    |                                   `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 69 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 70 |         let intersection = value.intersection(other)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:74:45: error: type 'Self.Element' does not conform to protocol 'Hashable'
 72 |     }
 73 |
 74 |     public func apply(_ update: ValueUpdate<Set<Element>>) {
    |                                             `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 75 |         self.apply(update.map { change in SetChange(from: change.old, to: change.new) })
 76 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:78:53: error: type 'Self.Element' does not conform to protocol 'Hashable'
 76 |     }
 77 |
 78 |     public var anyUpdatableValue: AnyUpdatableValue<Set<Element>> {
    |                                                     `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 79 |         return AnyUpdatableValue(
 80 |             getter: { self.value },
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:85:33: error: type 'Self.Element' does not conform to protocol 'Hashable'
 83 |     }
 84 |
 85 |     public var anyUpdatableSet: AnyUpdatableSet<Element> {
    |                                 `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 86 |         return AnyUpdatableSet(box: UpdatableSetBox(self))
 87 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:19:16: error: type 'Self.Element' does not conform to protocol 'Hashable'
 17 |     var isBuffered: Bool { get }
 18 |     var count: Int { get }
 19 |     var value: Set<Element> { get }
    |                `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func contains(_ member: Element) -> Bool
 21 |     func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:21:29: error: type 'Self.Element' does not conform to protocol 'Hashable'
 19 |     var value: Set<Element> { get }
 20 |     func contains(_ member: Element) -> Bool
 21 |     func isSubset(of other: Set<Element>) -> Bool
    |                             `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 22 |     func isSuperset(of other: Set<Element>) -> Bool
 23 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:22:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func contains(_ member: Element) -> Bool
 21 |     func isSubset(of other: Set<Element>) -> Bool
 22 |     func isSuperset(of other: Set<Element>) -> Bool
    |                               `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 23 |
 24 |     var observableCount: AnyObservableValue<Int> { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:26:27: error: type 'Self.Element' does not conform to protocol 'Hashable'
 24 |     var observableCount: AnyObservableValue<Int> { get }
 25 |     var anyObservableValue: AnyObservableValue<Base> { get }
 26 |     var anyObservableSet: AnyObservableSet<Element> { get }
    |                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 27 | }
 28 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:241:58: error: type 'Contents.Element' does not conform to protocol 'Hashable'
239 | }
240 |
241 | final class UpdatableSetBox<Contents: UpdatableSetType>: _AbstractUpdatableSet<Contents.Element> {
    |                                                          `- error: type 'Contents.Element' does not conform to protocol 'Hashable'
242 |     typealias Element = Contents.Element
243 |     typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:243:24: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
241 | final class UpdatableSetBox<Contents: UpdatableSetType>: _AbstractUpdatableSet<Contents.Element> {
242 |     typealias Element = Contents.Element
243 |     typealias Change = SetChange<Element>
    |                        `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
244 |
245 |     let contents: Contents
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:254:25: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
252 |     override var count: Int { return contents.count }
253 |
254 |     override var value: Set<Element> {
    |                         `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
255 |         get { return contents.value }
256 |         set { contents.value = newValue }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:259:35: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
257 |     }
258 |
259 |     override func apply(_ update: SetUpdate<Element>) { contents.apply(update) }
    |                                   `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
260 |
261 |     override func remove(_ member: Element) { contents.remove(member) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:261:19: error: method does not override any method from its superclass
142 |     open func apply(_ update: SetUpdate<Element>) { abstract() }
143 |
144 |     open func remove(_ member: Element) {
    |               `- note: potential overridden instance method 'remove' here
145 |         // Note: This should be kept in sync with the same member in the UpdatableSetType extension above.
146 |         if contains(member) {
    :
259 |     override func apply(_ update: SetUpdate<Element>) { contents.apply(update) }
260 |
261 |     override func remove(_ member: Element) { contents.remove(member) }
    |                   `- error: method does not override any method from its superclass
262 |     override func insert(_ member: Element) { contents.insert(member) }
263 |     override func removeAll() { contents.removeAll() }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:262:19: error: method does not override any method from its superclass
149 |     }
150 |
151 |     open func insert(_ member: Element) {
    |               `- note: potential overridden instance method 'insert' here
152 |         // Note: This should be kept in sync with the same member in the UpdatableSetType extension above.
153 |         if !contains(member) {
    :
260 |
261 |     override func remove(_ member: Element) { contents.remove(member) }
262 |     override func insert(_ member: Element) { contents.insert(member) }
    |                   `- error: method does not override any method from its superclass
263 |     override func removeAll() { contents.removeAll() }
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:264:38: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
262 |     override func insert(_ member: Element) { contents.insert(member) }
263 |     override func removeAll() { contents.removeAll() }
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
    |                                      `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:265:45: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
263 |     override func removeAll() { contents.removeAll() }
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
    |                                             `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:266:52: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
    |                                                    `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
268 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:267:37: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
    |                                     `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
268 |
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:269:19: error: method does not override any method from its superclass
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
268 |
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
    |                   `- error: method does not override any method from its superclass
270 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:120:15: note: potential overridden instance method 'contains' here
118 |     open var isBuffered: Bool { return false }
119 |     open var count: Int { return value.count }
120 |     open func contains(_ member: Element) -> Bool { return value.contains(member) }
    |               `- note: potential overridden instance method 'contains' here
121 |     open func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
122 |     open func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:270:38: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
268 |
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
270 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
    |                                      `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
272 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:271:40: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
270 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
    |                                        `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
272 |
273 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:273:19: error: method does not override any method from its superclass
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
272 |
273 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
    |                   `- error: method does not override any method from its superclass
274 |         contents.add(sink)
275 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:278:19: error: method does not override any method from its superclass
276 |
277 |     @discardableResult
278 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
    |                   `- error: method does not override any method from its superclass
279 |         return contents.remove(sink)
280 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:284:57: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
282 |     override var observableCount: AnyObservableValue<Int> { return contents.observableCount }
283 |
284 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
    |                                                         `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
285 |     override var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { return contents.anyUpdatableValue }
286 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:285:55: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
283 |
284 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
285 |     override var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { return contents.anyUpdatableValue }
    |                                                       `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
286 | }
287 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:30:19: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 28 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 29 |         if contains(member) {
 30 |             apply(SetChange(removed: [member]))
    |                   `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 31 |         }
 32 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:37:19: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 35 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 36 |         if !contains(member) {
 37 |             apply(SetChange(inserted: [member]))
    |                   `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 38 |         }
 39 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:44:19: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 42 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 43 |         if !isEmpty {
 44 |             apply(SetChange(removed: self.value))
    |                   `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 45 |         }
 46 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:51:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 49 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 50 |         let difference = other.subtracting(value)
 51 |         self.apply(SetChange(inserted: difference))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |     }
 53 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:57:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 56 |         let difference = value.subtracting(other)
 57 |         self.apply(SetChange(removed: difference))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 58 |     }
 59 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:63:34: error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 61 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 62 |         let value = self.value
 63 |         let intersection = value.intersection(other)
    |                                  `- error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 64 |         let additions = other.subtracting(value)
 65 |         self.apply(SetChange(removed: intersection, inserted: additions))
Swift.Set:1:11: note: where 'Element' = 'Self.Element'
 1 | extension Set {
   |           `- note: where 'Element' = 'Self.Element'
 2 |     @inlinable public mutating func subtract(_ other: Set<Element>)
 3 |     @inlinable public func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:65:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 63 |         let intersection = value.intersection(other)
 64 |         let additions = other.subtracting(value)
 65 |         self.apply(SetChange(removed: intersection, inserted: additions))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 66 |     }
 67 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:70:34: error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 68 |     public func subtract(_ other: Set<Element>) {
 69 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 70 |         let intersection = value.intersection(other)
    |                                  `- error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 71 |         self.apply(SetChange(removed: intersection))
 72 |     }
Swift.Set:1:11: note: where 'Element' = 'Self.Element'
 1 | extension Set {
   |           `- note: where 'Element' = 'Self.Element'
 2 |     @inlinable public mutating func subtract(_ other: Set<Element>)
 3 |     @inlinable public func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:71:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 69 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 70 |         let intersection = value.intersection(other)
 71 |         self.apply(SetChange(removed: intersection))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 72 |     }
 73 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:75:43: error: generic parameter 'Element' could not be inferred
 73 |
 74 |     public func apply(_ update: ValueUpdate<Set<Element>>) {
 75 |         self.apply(update.map { change in SetChange(from: change.old, to: change.new) })
    |                                           |- error: generic parameter 'Element' could not be inferred
    |                                           `- note: explicitly specify the generic arguments to fix this issue
 76 |     }
 77 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:25: note: 'Element' declared as parameter to type 'SetChange'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |                         `- note: 'Element' declared as parameter to type 'SetChange'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:38:54: error: type 'Self.Element' does not conform to protocol 'Hashable'
 36 |     public var isEmpty: Bool { return count == 0 }
 37 |
 38 |     internal var valueUpdates: AnySource<ValueUpdate<Set<Element>>> {
    |                                                      `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 39 |         var value = self.value
 40 |         return self.updates.map { event in
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:81:25: error: cannot convert value of type '(Update<SetChange<Self.Element>>) -> ()' to expected argument type '(Update<ValueChange<Value>>) -> Void'
 79 |         return AnyUpdatableValue(
 80 |             getter: { self.value },
 81 |             apply: self.apply,
    |                         `- error: cannot convert value of type '(Update<SetChange<Self.Element>>) -> ()' to expected argument type '(Update<ValueChange<Value>>) -> Void'
 82 |             updates: self.valueUpdates)
 83 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Update.swift:22:20: note: arguments to generic parameter 'Change' ('ValueChange<Value>' and 'SetChange<Self.Element>') are expected to be equal
20 | ///
21 | /// Note that is perfectly legal for a transaction to include no actual changes.
22 | public enum Update<Change: ChangeType> {
   |                    `- note: arguments to generic parameter 'Change' ('ValueChange<Value>' and 'SetChange<Self.Element>') are expected to be equal
23 |     public typealias Value = Change.Value
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:86:37: error: cannot convert value of type 'UpdatableSetBox<Self>' to expected argument type '_AbstractUpdatableSet<Element>'
 84 |
 85 |     public var anyUpdatableSet: AnyUpdatableSet<Element> {
 86 |         return AnyUpdatableSet(box: UpdatableSetBox(self))
    |                                     `- error: cannot convert value of type 'UpdatableSetBox<Self>' to expected argument type '_AbstractUpdatableSet<Element>'
 87 |     }
 88 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:33:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
 33 |     public func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
    |                                    `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 34 |     public func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
 35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:34:38: error: type 'Self.Element' does not conform to protocol 'Hashable'
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
 33 |     public func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
 34 |     public func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
    |                                      `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 35 |
 36 |     public var isEmpty: Bool { return count == 0 }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:68:34: error: type 'Self.Element' does not conform to protocol 'Hashable'
 66 |     }
 67 |
 68 |     public var anyObservableSet: AnyObservableSet<Element> {
    |                                  `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 69 |         return AnyObservableSet(box: ObservableSetBox(self))
 70 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:194:25: error: cannot convert value of type '(Update<SetChange<Element>>) -> ()' to expected argument type '(Update<ValueChange<Set<Element>>>) -> Void'
192 |         return AnyUpdatableValue(
193 |             getter: { self.value },
194 |             apply: self.apply,
    |                         `- error: cannot convert value of type '(Update<SetChange<Element>>) -> ()' to expected argument type '(Update<ValueChange<Set<Element>>>) -> Void'
195 |             updates: self.valueUpdates)
196 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Update.swift:22:20: note: arguments to generic parameter 'Change' ('ValueChange<Set<Element>>' and 'SetChange<Element>') are expected to be equal
20 | ///
21 | /// Note that is perfectly legal for a transaction to include no actual changes.
22 | public enum Update<Change: ChangeType> {
   |                    `- note: arguments to generic parameter 'Change' ('ValueChange<Set<Element>>' and 'SetChange<Element>') are expected to be equal
23 |     public typealias Value = Change.Value
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:274:18: error: instance method 'add' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
272 |
273 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
274 |         contents.add(sink)
    |                  `- error: instance method 'add' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
275 |     }
276 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
14 |     var value: Value { get }
15 |
16 |     func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
17 |
18 |     @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:279:25: error: instance method 'remove' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
277 |     @discardableResult
278 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
279 |         return contents.remove(sink)
    |                         `- error: instance method 'remove' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
280 |     }
281 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
17 |
18 |     @discardableResult
19 |     func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
20 | }
21 |
[183/188] Compiling GlueKit UpdatableValue.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 22 |
 23 |     // Required members
 24 |     var value: [Element] { get nonmutating set }
    |         `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 25 |     func apply(_ update: ArrayUpdate<Element>)
 26 |     subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 |     ///
58 |     /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 |     var value: Value { get nonmutating set }
   |         `- note: attempt to override property here
60 |
61 |     func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:15:22: error: type 'Self.Element' does not conform to protocol 'Hashable'
 13 |     associatedtype Element
 14 |
 15 |     typealias Base = Set<Element>
    |                      `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 16 |
 17 |     var isBuffered: Bool { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:11:26: error: type 'Self.Element' does not conform to protocol 'Hashable'
  9 | public protocol UpdatableSetType: ObservableSetType, UpdatableType {
 10 |     var value: Base { get nonmutating set }
 11 |     func apply(_ update: SetUpdate<Element>)
    |                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 12 |
 13 |     // Optional members
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:17:29: error: type 'Self.Element' does not conform to protocol 'Hashable'
 15 |     func insert(_ member: Element)
 16 |     func removeAll()
 17 |     func formUnion(_ other: Set<Element>)
    |                             `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 18 |     func formIntersection(_ other: Set<Element>)
 19 |     func formSymmetricDifference(_ other: Set<Element>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:18:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
 16 |     func removeAll()
 17 |     func formUnion(_ other: Set<Element>)
 18 |     func formIntersection(_ other: Set<Element>)
    |                                    `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 19 |     func formSymmetricDifference(_ other: Set<Element>)
 20 |     func subtract(_ other: Set<Element>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:19:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
 17 |     func formUnion(_ other: Set<Element>)
 18 |     func formIntersection(_ other: Set<Element>)
 19 |     func formSymmetricDifference(_ other: Set<Element>)
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func subtract(_ other: Set<Element>)
 21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:20:28: error: type 'Self.Element' does not conform to protocol 'Hashable'
 18 |     func formIntersection(_ other: Set<Element>)
 19 |     func formSymmetricDifference(_ other: Set<Element>)
 20 |     func subtract(_ other: Set<Element>)
    |                            `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 21 |
 22 |     var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:22:46: error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func subtract(_ other: Set<Element>)
 21 |
 22 |     var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { get }
    |                                              `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 23 |     var anyUpdatableSet: AnyUpdatableSet<Element> { get }
 24 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:23:26: error: type 'Self.Element' does not conform to protocol 'Hashable'
 21 |
 22 |     var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { get }
 23 |     var anyUpdatableSet: AnyUpdatableSet<Element> { get }
    |                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 24 | }
 25 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:48:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
 46 |     }
 47 |
 48 |     public func formUnion(_ other: Set<Element>) {
    |                                    `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 49 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 50 |         let difference = other.subtracting(value)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:54:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
 52 |     }
 53 |
 54 |     public func formIntersection(_ other: Set<Element>) {
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 55 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 56 |         let difference = value.subtracting(other)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:60:50: error: type 'Self.Element' does not conform to protocol 'Hashable'
 58 |     }
 59 |
 60 |     public func formSymmetricDifference(_ other: Set<Element>) {
    |                                                  `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 61 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 62 |         let value = self.value
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:68:35: error: type 'Self.Element' does not conform to protocol 'Hashable'
 66 |     }
 67 |
 68 |     public func subtract(_ other: Set<Element>) {
    |                                   `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 69 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 70 |         let intersection = value.intersection(other)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:74:45: error: type 'Self.Element' does not conform to protocol 'Hashable'
 72 |     }
 73 |
 74 |     public func apply(_ update: ValueUpdate<Set<Element>>) {
    |                                             `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 75 |         self.apply(update.map { change in SetChange(from: change.old, to: change.new) })
 76 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:78:53: error: type 'Self.Element' does not conform to protocol 'Hashable'
 76 |     }
 77 |
 78 |     public var anyUpdatableValue: AnyUpdatableValue<Set<Element>> {
    |                                                     `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 79 |         return AnyUpdatableValue(
 80 |             getter: { self.value },
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:85:33: error: type 'Self.Element' does not conform to protocol 'Hashable'
 83 |     }
 84 |
 85 |     public var anyUpdatableSet: AnyUpdatableSet<Element> {
    |                                 `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 86 |         return AnyUpdatableSet(box: UpdatableSetBox(self))
 87 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:19:16: error: type 'Self.Element' does not conform to protocol 'Hashable'
 17 |     var isBuffered: Bool { get }
 18 |     var count: Int { get }
 19 |     var value: Set<Element> { get }
    |                `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func contains(_ member: Element) -> Bool
 21 |     func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:21:29: error: type 'Self.Element' does not conform to protocol 'Hashable'
 19 |     var value: Set<Element> { get }
 20 |     func contains(_ member: Element) -> Bool
 21 |     func isSubset(of other: Set<Element>) -> Bool
    |                             `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 22 |     func isSuperset(of other: Set<Element>) -> Bool
 23 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:22:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func contains(_ member: Element) -> Bool
 21 |     func isSubset(of other: Set<Element>) -> Bool
 22 |     func isSuperset(of other: Set<Element>) -> Bool
    |                               `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 23 |
 24 |     var observableCount: AnyObservableValue<Int> { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:26:27: error: type 'Self.Element' does not conform to protocol 'Hashable'
 24 |     var observableCount: AnyObservableValue<Int> { get }
 25 |     var anyObservableValue: AnyObservableValue<Base> { get }
 26 |     var anyObservableSet: AnyObservableSet<Element> { get }
    |                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 27 | }
 28 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:241:58: error: type 'Contents.Element' does not conform to protocol 'Hashable'
239 | }
240 |
241 | final class UpdatableSetBox<Contents: UpdatableSetType>: _AbstractUpdatableSet<Contents.Element> {
    |                                                          `- error: type 'Contents.Element' does not conform to protocol 'Hashable'
242 |     typealias Element = Contents.Element
243 |     typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:243:24: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
241 | final class UpdatableSetBox<Contents: UpdatableSetType>: _AbstractUpdatableSet<Contents.Element> {
242 |     typealias Element = Contents.Element
243 |     typealias Change = SetChange<Element>
    |                        `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
244 |
245 |     let contents: Contents
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:254:25: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
252 |     override var count: Int { return contents.count }
253 |
254 |     override var value: Set<Element> {
    |                         `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
255 |         get { return contents.value }
256 |         set { contents.value = newValue }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:259:35: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
257 |     }
258 |
259 |     override func apply(_ update: SetUpdate<Element>) { contents.apply(update) }
    |                                   `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
260 |
261 |     override func remove(_ member: Element) { contents.remove(member) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:261:19: error: method does not override any method from its superclass
142 |     open func apply(_ update: SetUpdate<Element>) { abstract() }
143 |
144 |     open func remove(_ member: Element) {
    |               `- note: potential overridden instance method 'remove' here
145 |         // Note: This should be kept in sync with the same member in the UpdatableSetType extension above.
146 |         if contains(member) {
    :
259 |     override func apply(_ update: SetUpdate<Element>) { contents.apply(update) }
260 |
261 |     override func remove(_ member: Element) { contents.remove(member) }
    |                   `- error: method does not override any method from its superclass
262 |     override func insert(_ member: Element) { contents.insert(member) }
263 |     override func removeAll() { contents.removeAll() }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:262:19: error: method does not override any method from its superclass
149 |     }
150 |
151 |     open func insert(_ member: Element) {
    |               `- note: potential overridden instance method 'insert' here
152 |         // Note: This should be kept in sync with the same member in the UpdatableSetType extension above.
153 |         if !contains(member) {
    :
260 |
261 |     override func remove(_ member: Element) { contents.remove(member) }
262 |     override func insert(_ member: Element) { contents.insert(member) }
    |                   `- error: method does not override any method from its superclass
263 |     override func removeAll() { contents.removeAll() }
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:264:38: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
262 |     override func insert(_ member: Element) { contents.insert(member) }
263 |     override func removeAll() { contents.removeAll() }
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
    |                                      `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:265:45: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
263 |     override func removeAll() { contents.removeAll() }
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
    |                                             `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:266:52: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
    |                                                    `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
268 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:267:37: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
    |                                     `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
268 |
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:269:19: error: method does not override any method from its superclass
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
268 |
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
    |                   `- error: method does not override any method from its superclass
270 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:120:15: note: potential overridden instance method 'contains' here
118 |     open var isBuffered: Bool { return false }
119 |     open var count: Int { return value.count }
120 |     open func contains(_ member: Element) -> Bool { return value.contains(member) }
    |               `- note: potential overridden instance method 'contains' here
121 |     open func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
122 |     open func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:270:38: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
268 |
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
270 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
    |                                      `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
272 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:271:40: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
270 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
    |                                        `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
272 |
273 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:273:19: error: method does not override any method from its superclass
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
272 |
273 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
    |                   `- error: method does not override any method from its superclass
274 |         contents.add(sink)
275 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:278:19: error: method does not override any method from its superclass
276 |
277 |     @discardableResult
278 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
    |                   `- error: method does not override any method from its superclass
279 |         return contents.remove(sink)
280 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:284:57: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
282 |     override var observableCount: AnyObservableValue<Int> { return contents.observableCount }
283 |
284 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
    |                                                         `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
285 |     override var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { return contents.anyUpdatableValue }
286 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:285:55: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
283 |
284 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
285 |     override var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { return contents.anyUpdatableValue }
    |                                                       `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
286 | }
287 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:30:19: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 28 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 29 |         if contains(member) {
 30 |             apply(SetChange(removed: [member]))
    |                   `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 31 |         }
 32 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:37:19: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 35 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 36 |         if !contains(member) {
 37 |             apply(SetChange(inserted: [member]))
    |                   `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 38 |         }
 39 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:44:19: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 42 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 43 |         if !isEmpty {
 44 |             apply(SetChange(removed: self.value))
    |                   `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 45 |         }
 46 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:51:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 49 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 50 |         let difference = other.subtracting(value)
 51 |         self.apply(SetChange(inserted: difference))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |     }
 53 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:57:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 56 |         let difference = value.subtracting(other)
 57 |         self.apply(SetChange(removed: difference))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 58 |     }
 59 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:63:34: error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 61 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 62 |         let value = self.value
 63 |         let intersection = value.intersection(other)
    |                                  `- error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 64 |         let additions = other.subtracting(value)
 65 |         self.apply(SetChange(removed: intersection, inserted: additions))
Swift.Set:1:11: note: where 'Element' = 'Self.Element'
 1 | extension Set {
   |           `- note: where 'Element' = 'Self.Element'
 2 |     @inlinable public mutating func subtract(_ other: Set<Element>)
 3 |     @inlinable public func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:65:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 63 |         let intersection = value.intersection(other)
 64 |         let additions = other.subtracting(value)
 65 |         self.apply(SetChange(removed: intersection, inserted: additions))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 66 |     }
 67 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:70:34: error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 68 |     public func subtract(_ other: Set<Element>) {
 69 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 70 |         let intersection = value.intersection(other)
    |                                  `- error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 71 |         self.apply(SetChange(removed: intersection))
 72 |     }
Swift.Set:1:11: note: where 'Element' = 'Self.Element'
 1 | extension Set {
   |           `- note: where 'Element' = 'Self.Element'
 2 |     @inlinable public mutating func subtract(_ other: Set<Element>)
 3 |     @inlinable public func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:71:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 69 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 70 |         let intersection = value.intersection(other)
 71 |         self.apply(SetChange(removed: intersection))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 72 |     }
 73 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:75:43: error: generic parameter 'Element' could not be inferred
 73 |
 74 |     public func apply(_ update: ValueUpdate<Set<Element>>) {
 75 |         self.apply(update.map { change in SetChange(from: change.old, to: change.new) })
    |                                           |- error: generic parameter 'Element' could not be inferred
    |                                           `- note: explicitly specify the generic arguments to fix this issue
 76 |     }
 77 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:25: note: 'Element' declared as parameter to type 'SetChange'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |                         `- note: 'Element' declared as parameter to type 'SetChange'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:38:54: error: type 'Self.Element' does not conform to protocol 'Hashable'
 36 |     public var isEmpty: Bool { return count == 0 }
 37 |
 38 |     internal var valueUpdates: AnySource<ValueUpdate<Set<Element>>> {
    |                                                      `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 39 |         var value = self.value
 40 |         return self.updates.map { event in
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:81:25: error: cannot convert value of type '(Update<SetChange<Self.Element>>) -> ()' to expected argument type '(Update<ValueChange<Value>>) -> Void'
 79 |         return AnyUpdatableValue(
 80 |             getter: { self.value },
 81 |             apply: self.apply,
    |                         `- error: cannot convert value of type '(Update<SetChange<Self.Element>>) -> ()' to expected argument type '(Update<ValueChange<Value>>) -> Void'
 82 |             updates: self.valueUpdates)
 83 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Update.swift:22:20: note: arguments to generic parameter 'Change' ('ValueChange<Value>' and 'SetChange<Self.Element>') are expected to be equal
20 | ///
21 | /// Note that is perfectly legal for a transaction to include no actual changes.
22 | public enum Update<Change: ChangeType> {
   |                    `- note: arguments to generic parameter 'Change' ('ValueChange<Value>' and 'SetChange<Self.Element>') are expected to be equal
23 |     public typealias Value = Change.Value
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:86:37: error: cannot convert value of type 'UpdatableSetBox<Self>' to expected argument type '_AbstractUpdatableSet<Element>'
 84 |
 85 |     public var anyUpdatableSet: AnyUpdatableSet<Element> {
 86 |         return AnyUpdatableSet(box: UpdatableSetBox(self))
    |                                     `- error: cannot convert value of type 'UpdatableSetBox<Self>' to expected argument type '_AbstractUpdatableSet<Element>'
 87 |     }
 88 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:33:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
 33 |     public func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
    |                                    `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 34 |     public func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
 35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:34:38: error: type 'Self.Element' does not conform to protocol 'Hashable'
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
 33 |     public func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
 34 |     public func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
    |                                      `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 35 |
 36 |     public var isEmpty: Bool { return count == 0 }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:68:34: error: type 'Self.Element' does not conform to protocol 'Hashable'
 66 |     }
 67 |
 68 |     public var anyObservableSet: AnyObservableSet<Element> {
    |                                  `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 69 |         return AnyObservableSet(box: ObservableSetBox(self))
 70 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:194:25: error: cannot convert value of type '(Update<SetChange<Element>>) -> ()' to expected argument type '(Update<ValueChange<Set<Element>>>) -> Void'
192 |         return AnyUpdatableValue(
193 |             getter: { self.value },
194 |             apply: self.apply,
    |                         `- error: cannot convert value of type '(Update<SetChange<Element>>) -> ()' to expected argument type '(Update<ValueChange<Set<Element>>>) -> Void'
195 |             updates: self.valueUpdates)
196 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Update.swift:22:20: note: arguments to generic parameter 'Change' ('ValueChange<Set<Element>>' and 'SetChange<Element>') are expected to be equal
20 | ///
21 | /// Note that is perfectly legal for a transaction to include no actual changes.
22 | public enum Update<Change: ChangeType> {
   |                    `- note: arguments to generic parameter 'Change' ('ValueChange<Set<Element>>' and 'SetChange<Element>') are expected to be equal
23 |     public typealias Value = Change.Value
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:274:18: error: instance method 'add' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
272 |
273 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
274 |         contents.add(sink)
    |                  `- error: instance method 'add' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
275 |     }
276 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
14 |     var value: Value { get }
15 |
16 |     func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
17 |
18 |     @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:279:25: error: instance method 'remove' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
277 |     @discardableResult
278 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
279 |         return contents.remove(sink)
    |                         `- error: instance method 'remove' requires the types 'Sink.Value' and 'Update<SetChange<Contents.Element>>' be equivalent
280 |     }
281 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
17 |
18 |     @discardableResult
19 |     func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<SetChange<Contents.Element>>'
20 | }
21 |
warning: 'bigint': ignoring duplicate product 'BigInt' (static library)
warning: 'spi-builder-workspace': dependency 'siphash' is not used by any target
BUILD FAILURE 6.3 macosSpm