The Swift Package Index logo.Swift Package Index

Build Information

Failed to build Attabench, reference v2.0.0 (df85ad), with Swift 6.2 for macOS (SPM) on 19 Jun 2025 01:41:32 UTC.

Build Command

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

Build Log

17 |
18 |     @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetSortingByMappingToObservableComparable.swift:74:16: error: instance method 'remove' requires the types 'SetSortingByMappingToObservableComparable<Parent, Field>.ParentSink.Value' and 'Update<Parent.Change>' be equivalent
 72 |
 73 |     deinit {
 74 |         parent.remove(ParentSink(owner: self))
    |                `- error: instance method 'remove' requires the types 'SetSortingByMappingToObservableComparable<Parent, Field>.ParentSink.Value' and 'Update<Parent.Change>' be equivalent
 75 |         for (sink, field) in fields {
 76 |             field.remove(sink)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'SetSortingByMappingToObservableComparable<Parent, Field>.ParentSink.Value', 'Update<Self.Change>' = 'Update<Parent.Change>'
17 |
18 |     @discardableResult
19 |     func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'SetSortingByMappingToObservableComparable<Parent, Field>.ParentSink.Value', 'Update<Self.Change>' = 'Update<Parent.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableValueType where Value: ObservableSetType {
10 |     public func unpacked() -> AnyObservableSet<Value.Element> {
   |                               `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 |         return UnpackedObservableSetReference(self).anyObservableSet
12 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableValueType where Value: ObservableSetType {
10 |     public func unpacked() -> AnyObservableSet<Value.Element> {
   |                               `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 |         return UnpackedObservableSetReference(self).anyObservableSet
12 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableValueType where Value: ObservableSetType {
10 |     public func unpacked() -> AnyObservableSet<Value.Element> {
   |                               `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 |         return UnpackedObservableSetReference(self).anyObservableSet
12 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableValueType where Value: ObservableSetType {
10 |     public func unpacked() -> AnyObservableSet<Value.Element> {
   |                               `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 |         return UnpackedObservableSetReference(self).anyObservableSet
12 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableValueType where Value: ObservableSetType {
10 |     public func unpacked() -> AnyObservableSet<Value.Element> {
   |                               `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 |         return UnpackedObservableSetReference(self).anyObservableSet
12 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableValueType where Value: ObservableSetType {
10 |     public func unpacked() -> AnyObservableSet<Value.Element> {
   |                               `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 |         return UnpackedObservableSetReference(self).anyObservableSet
12 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableValueType where Value: ObservableSetType {
10 |     public func unpacked() -> AnyObservableSet<Value.Element> {
   |                               `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 |         return UnpackedObservableSetReference(self).anyObservableSet
12 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableValueType where Value: ObservableSetType {
10 |     public func unpacked() -> AnyObservableSet<Value.Element> {
   |                               `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 |         return UnpackedObservableSetReference(self).anyObservableSet
12 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableValueType where Value: ObservableSetType {
10 |     public func unpacked() -> AnyObservableSet<Value.Element> {
   |                               `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 |         return UnpackedObservableSetReference(self).anyObservableSet
12 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableValueType where Value: ObservableSetType {
10 |     public func unpacked() -> AnyObservableSet<Value.Element> {
   |                               `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 |         return UnpackedObservableSetReference(self).anyObservableSet
12 |     }
[162/186] Compiling GlueKit NSTextField Glue.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:30: error: generic struct 'SetChange' requires that 'Input.Element' conform to 'Hashable'
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                              `- error: generic struct 'SetChange' requires that 'Input.Element' conform to 'Hashable'
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Input.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Input.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:47: error: missing argument label 'where:' in call
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                                               `- error: missing argument label 'where:' in call
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:47: error: cannot convert value of type 'Input.Element' to expected argument type '(Input.Element) throws -> Bool'
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                                               `- error: cannot convert value of type 'Input.Element' to expected argument type '(Input.Element) throws -> Bool'
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/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/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/ObservableSet.swift:12:67: error: type 'Self.Element' does not conform to protocol 'Hashable'
 10 | public typealias SetUpdateSource<Element: Hashable> = AnySource<Update<SetChange<Element>>>
 11 |
 12 | public protocol ObservableSetType: ObservableType where Change == SetChange<Element> {
    |                                                                   `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 13 |     associatedtype Element
 14 |
/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: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/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/ObservableSet.swift:159:60: error: type 'Contents.Element' does not conform to protocol 'Hashable'
157 | }
158 |
159 | final class ObservableSetBox<Contents: ObservableSetType>: _AbstractObservableSet<Contents.Element> {
    |                                                            `- error: type 'Contents.Element' does not conform to protocol 'Hashable'
160 |     typealias Element = Contents.Element
161 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:170:25: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
168 |     override var isBuffered: Bool { return contents.isBuffered }
169 |     override var count: Int { return contents.count }
170 |     override var value: Set<Element> { return contents.value }
    |                         `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:171:19: error: method does not override any method from its superclass
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) }
    :
169 |     override var count: Int { return contents.count }
170 |     override var value: Set<Element> { return contents.value }
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
    |                   `- error: method does not override any method from its superclass
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
173 |     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:172:38: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
170 |     override var value: Set<Element> { return contents.value }
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
    |                                      `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
174 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:173:40: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
    |                                        `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
174 |
175 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<SetChange<Element>> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:175:19: error: method does not override any method from its superclass
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
174 |
175 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<SetChange<Element>> {
    |                   `- error: method does not override any method from its superclass
176 |         contents.add(sink)
177 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:180:19: error: method does not override any method from its superclass
178 |
179 |     @discardableResult
180 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<SetChange<Element>> {
    |                   `- error: method does not override any method from its superclass
181 |         return contents.remove(sink)
182 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:185:57: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
183 |
184 |     override var observableCount: AnyObservableValue<Int> { return contents.observableCount }
185 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
    |                                                         `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
186 | }
187 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:216:59: error: type 'Self.Element' does not conform to protocol 'Hashable'
214 |
215 | extension ObservableSetType {
216 |     public static func constant(_ value: Set<Element>) -> AnyObservableSet<Element> {
    |                                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
217 |         return ObservableConstantSet(value).anyObservableSet
218 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:216:42: error: type 'Self.Element' does not conform to protocol 'Hashable'
214 |
215 | extension ObservableSetType {
216 |     public static func constant(_ value: Set<Element>) -> AnyObservableSet<Element> {
    |                                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
217 |         return ObservableConstantSet(value).anyObservableSet
218 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:220:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
218 |     }
219 |
220 |     public static func emptyConstant() -> AnyObservableSet<Element> {
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
221 |         return constant([])
222 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:32:77: error: missing argument label 'where:' in call
 30 |     public var isBuffered: Bool { return false }
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
    |                                                                             `- error: missing argument label 'where:' in call
 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) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:32:77: error: cannot convert value of type 'Self.Element' to expected argument type '(Self.Element) throws -> Bool'
 30 |     public var isBuffered: Bool { return false }
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
    |                                                                             `- error: cannot convert value of type 'Self.Element' to expected argument type '(Self.Element) throws -> Bool'
 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) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:54:45: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |             update.map { change in
 53 |                 let old = count
 54 |                 count += numericCast(change.inserted.count - change.removed.count)
    |                                             `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |                 return .init(from: old, to: count)
 56 |             }
/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/ObservableSet.swift:54:69: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |             update.map { change in
 53 |                 let old = count
 54 |                 count += numericCast(change.inserted.count - change.removed.count)
    |                                                                     `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |                 return .init(from: old, to: count)
 56 |             }
/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 |
[163/186] Compiling GlueKit ObservableArray.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:30: error: generic struct 'SetChange' requires that 'Input.Element' conform to 'Hashable'
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                              `- error: generic struct 'SetChange' requires that 'Input.Element' conform to 'Hashable'
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Input.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Input.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:47: error: missing argument label 'where:' in call
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                                               `- error: missing argument label 'where:' in call
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:47: error: cannot convert value of type 'Input.Element' to expected argument type '(Input.Element) throws -> Bool'
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                                               `- error: cannot convert value of type 'Input.Element' to expected argument type '(Input.Element) throws -> Bool'
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/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/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/ObservableSet.swift:12:67: error: type 'Self.Element' does not conform to protocol 'Hashable'
 10 | public typealias SetUpdateSource<Element: Hashable> = AnySource<Update<SetChange<Element>>>
 11 |
 12 | public protocol ObservableSetType: ObservableType where Change == SetChange<Element> {
    |                                                                   `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 13 |     associatedtype Element
 14 |
/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: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/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/ObservableSet.swift:159:60: error: type 'Contents.Element' does not conform to protocol 'Hashable'
157 | }
158 |
159 | final class ObservableSetBox<Contents: ObservableSetType>: _AbstractObservableSet<Contents.Element> {
    |                                                            `- error: type 'Contents.Element' does not conform to protocol 'Hashable'
160 |     typealias Element = Contents.Element
161 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:170:25: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
168 |     override var isBuffered: Bool { return contents.isBuffered }
169 |     override var count: Int { return contents.count }
170 |     override var value: Set<Element> { return contents.value }
    |                         `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:171:19: error: method does not override any method from its superclass
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) }
    :
169 |     override var count: Int { return contents.count }
170 |     override var value: Set<Element> { return contents.value }
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
    |                   `- error: method does not override any method from its superclass
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
173 |     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:172:38: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
170 |     override var value: Set<Element> { return contents.value }
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
    |                                      `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
174 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:173:40: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
    |                                        `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
174 |
175 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<SetChange<Element>> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:175:19: error: method does not override any method from its superclass
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
174 |
175 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<SetChange<Element>> {
    |                   `- error: method does not override any method from its superclass
176 |         contents.add(sink)
177 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:180:19: error: method does not override any method from its superclass
178 |
179 |     @discardableResult
180 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<SetChange<Element>> {
    |                   `- error: method does not override any method from its superclass
181 |         return contents.remove(sink)
182 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:185:57: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
183 |
184 |     override var observableCount: AnyObservableValue<Int> { return contents.observableCount }
185 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
    |                                                         `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
186 | }
187 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:216:59: error: type 'Self.Element' does not conform to protocol 'Hashable'
214 |
215 | extension ObservableSetType {
216 |     public static func constant(_ value: Set<Element>) -> AnyObservableSet<Element> {
    |                                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
217 |         return ObservableConstantSet(value).anyObservableSet
218 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:216:42: error: type 'Self.Element' does not conform to protocol 'Hashable'
214 |
215 | extension ObservableSetType {
216 |     public static func constant(_ value: Set<Element>) -> AnyObservableSet<Element> {
    |                                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
217 |         return ObservableConstantSet(value).anyObservableSet
218 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:220:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
218 |     }
219 |
220 |     public static func emptyConstant() -> AnyObservableSet<Element> {
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
221 |         return constant([])
222 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:32:77: error: missing argument label 'where:' in call
 30 |     public var isBuffered: Bool { return false }
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
    |                                                                             `- error: missing argument label 'where:' in call
 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) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:32:77: error: cannot convert value of type 'Self.Element' to expected argument type '(Self.Element) throws -> Bool'
 30 |     public var isBuffered: Bool { return false }
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
    |                                                                             `- error: cannot convert value of type 'Self.Element' to expected argument type '(Self.Element) throws -> Bool'
 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) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:54:45: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |             update.map { change in
 53 |                 let old = count
 54 |                 count += numericCast(change.inserted.count - change.removed.count)
    |                                             `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |                 return .init(from: old, to: count)
 56 |             }
/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/ObservableSet.swift:54:69: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |             update.map { change in
 53 |                 let old = count
 54 |                 count += numericCast(change.inserted.count - change.removed.count)
    |                                                                     `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |                 return .init(from: old, to: count)
 56 |             }
/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 |
[164/186] Compiling GlueKit ObservableContains.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:30: error: generic struct 'SetChange' requires that 'Input.Element' conform to 'Hashable'
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                              `- error: generic struct 'SetChange' requires that 'Input.Element' conform to 'Hashable'
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Input.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Input.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:47: error: missing argument label 'where:' in call
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                                               `- error: missing argument label 'where:' in call
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:47: error: cannot convert value of type 'Input.Element' to expected argument type '(Input.Element) throws -> Bool'
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                                               `- error: cannot convert value of type 'Input.Element' to expected argument type '(Input.Element) throws -> Bool'
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/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/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/ObservableSet.swift:12:67: error: type 'Self.Element' does not conform to protocol 'Hashable'
 10 | public typealias SetUpdateSource<Element: Hashable> = AnySource<Update<SetChange<Element>>>
 11 |
 12 | public protocol ObservableSetType: ObservableType where Change == SetChange<Element> {
    |                                                                   `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 13 |     associatedtype Element
 14 |
/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: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/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/ObservableSet.swift:159:60: error: type 'Contents.Element' does not conform to protocol 'Hashable'
157 | }
158 |
159 | final class ObservableSetBox<Contents: ObservableSetType>: _AbstractObservableSet<Contents.Element> {
    |                                                            `- error: type 'Contents.Element' does not conform to protocol 'Hashable'
160 |     typealias Element = Contents.Element
161 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:170:25: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
168 |     override var isBuffered: Bool { return contents.isBuffered }
169 |     override var count: Int { return contents.count }
170 |     override var value: Set<Element> { return contents.value }
    |                         `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:171:19: error: method does not override any method from its superclass
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) }
    :
169 |     override var count: Int { return contents.count }
170 |     override var value: Set<Element> { return contents.value }
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
    |                   `- error: method does not override any method from its superclass
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
173 |     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:172:38: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
170 |     override var value: Set<Element> { return contents.value }
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
    |                                      `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
174 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:173:40: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
    |                                        `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
174 |
175 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<SetChange<Element>> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:175:19: error: method does not override any method from its superclass
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
174 |
175 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<SetChange<Element>> {
    |                   `- error: method does not override any method from its superclass
176 |         contents.add(sink)
177 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:180:19: error: method does not override any method from its superclass
178 |
179 |     @discardableResult
180 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<SetChange<Element>> {
    |                   `- error: method does not override any method from its superclass
181 |         return contents.remove(sink)
182 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:185:57: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
183 |
184 |     override var observableCount: AnyObservableValue<Int> { return contents.observableCount }
185 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
    |                                                         `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
186 | }
187 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:216:59: error: type 'Self.Element' does not conform to protocol 'Hashable'
214 |
215 | extension ObservableSetType {
216 |     public static func constant(_ value: Set<Element>) -> AnyObservableSet<Element> {
    |                                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
217 |         return ObservableConstantSet(value).anyObservableSet
218 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:216:42: error: type 'Self.Element' does not conform to protocol 'Hashable'
214 |
215 | extension ObservableSetType {
216 |     public static func constant(_ value: Set<Element>) -> AnyObservableSet<Element> {
    |                                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
217 |         return ObservableConstantSet(value).anyObservableSet
218 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:220:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
218 |     }
219 |
220 |     public static func emptyConstant() -> AnyObservableSet<Element> {
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
221 |         return constant([])
222 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:32:77: error: missing argument label 'where:' in call
 30 |     public var isBuffered: Bool { return false }
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
    |                                                                             `- error: missing argument label 'where:' in call
 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) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:32:77: error: cannot convert value of type 'Self.Element' to expected argument type '(Self.Element) throws -> Bool'
 30 |     public var isBuffered: Bool { return false }
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
    |                                                                             `- error: cannot convert value of type 'Self.Element' to expected argument type '(Self.Element) throws -> Bool'
 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) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:54:45: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |             update.map { change in
 53 |                 let old = count
 54 |                 count += numericCast(change.inserted.count - change.removed.count)
    |                                             `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |                 return .init(from: old, to: count)
 56 |             }
/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/ObservableSet.swift:54:69: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |             update.map { change in
 53 |                 let old = count
 54 |                 count += numericCast(change.inserted.count - change.removed.count)
    |                                                                     `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |                 return .init(from: old, to: count)
 56 |             }
/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 |
[165/186] Compiling GlueKit ObservableSet.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:30: error: generic struct 'SetChange' requires that 'Input.Element' conform to 'Hashable'
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                              `- error: generic struct 'SetChange' requires that 'Input.Element' conform to 'Hashable'
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Input.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Input.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:47: error: missing argument label 'where:' in call
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                                               `- error: missing argument label 'where:' in call
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:47: error: cannot convert value of type 'Input.Element' to expected argument type '(Input.Element) throws -> Bool'
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                                               `- error: cannot convert value of type 'Input.Element' to expected argument type '(Input.Element) throws -> Bool'
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/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/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/ObservableSet.swift:12:67: error: type 'Self.Element' does not conform to protocol 'Hashable'
 10 | public typealias SetUpdateSource<Element: Hashable> = AnySource<Update<SetChange<Element>>>
 11 |
 12 | public protocol ObservableSetType: ObservableType where Change == SetChange<Element> {
    |                                                                   `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 13 |     associatedtype Element
 14 |
/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: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/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/ObservableSet.swift:159:60: error: type 'Contents.Element' does not conform to protocol 'Hashable'
157 | }
158 |
159 | final class ObservableSetBox<Contents: ObservableSetType>: _AbstractObservableSet<Contents.Element> {
    |                                                            `- error: type 'Contents.Element' does not conform to protocol 'Hashable'
160 |     typealias Element = Contents.Element
161 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:170:25: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
168 |     override var isBuffered: Bool { return contents.isBuffered }
169 |     override var count: Int { return contents.count }
170 |     override var value: Set<Element> { return contents.value }
    |                         `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:171:19: error: method does not override any method from its superclass
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) }
    :
169 |     override var count: Int { return contents.count }
170 |     override var value: Set<Element> { return contents.value }
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
    |                   `- error: method does not override any method from its superclass
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
173 |     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:172:38: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
170 |     override var value: Set<Element> { return contents.value }
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
    |                                      `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
174 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:173:40: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
    |                                        `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
174 |
175 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<SetChange<Element>> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:175:19: error: method does not override any method from its superclass
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
174 |
175 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<SetChange<Element>> {
    |                   `- error: method does not override any method from its superclass
176 |         contents.add(sink)
177 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:180:19: error: method does not override any method from its superclass
178 |
179 |     @discardableResult
180 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<SetChange<Element>> {
    |                   `- error: method does not override any method from its superclass
181 |         return contents.remove(sink)
182 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:185:57: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
183 |
184 |     override var observableCount: AnyObservableValue<Int> { return contents.observableCount }
185 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
    |                                                         `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
186 | }
187 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:216:59: error: type 'Self.Element' does not conform to protocol 'Hashable'
214 |
215 | extension ObservableSetType {
216 |     public static func constant(_ value: Set<Element>) -> AnyObservableSet<Element> {
    |                                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
217 |         return ObservableConstantSet(value).anyObservableSet
218 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:216:42: error: type 'Self.Element' does not conform to protocol 'Hashable'
214 |
215 | extension ObservableSetType {
216 |     public static func constant(_ value: Set<Element>) -> AnyObservableSet<Element> {
    |                                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
217 |         return ObservableConstantSet(value).anyObservableSet
218 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:220:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
218 |     }
219 |
220 |     public static func emptyConstant() -> AnyObservableSet<Element> {
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
221 |         return constant([])
222 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:32:77: error: missing argument label 'where:' in call
 30 |     public var isBuffered: Bool { return false }
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
    |                                                                             `- error: missing argument label 'where:' in call
 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) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:32:77: error: cannot convert value of type 'Self.Element' to expected argument type '(Self.Element) throws -> Bool'
 30 |     public var isBuffered: Bool { return false }
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
    |                                                                             `- error: cannot convert value of type 'Self.Element' to expected argument type '(Self.Element) throws -> Bool'
 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) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:54:45: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |             update.map { change in
 53 |                 let old = count
 54 |                 count += numericCast(change.inserted.count - change.removed.count)
    |                                             `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |                 return .init(from: old, to: count)
 56 |             }
/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/ObservableSet.swift:54:69: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |             update.map { change in
 53 |                 let old = count
 54 |                 count += numericCast(change.inserted.count - change.removed.count)
    |                                                                     `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |                 return .init(from: old, to: count)
 56 |             }
/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 |
[166/186] Compiling GlueKit ObservableType.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:30: error: generic struct 'SetChange' requires that 'Input.Element' conform to 'Hashable'
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                              `- error: generic struct 'SetChange' requires that 'Input.Element' conform to 'Hashable'
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Input.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Input.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:47: error: missing argument label 'where:' in call
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                                               `- error: missing argument label 'where:' in call
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:47: error: cannot convert value of type 'Input.Element' to expected argument type '(Input.Element) throws -> Bool'
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                                               `- error: cannot convert value of type 'Input.Element' to expected argument type '(Input.Element) throws -> Bool'
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/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/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/ObservableSet.swift:12:67: error: type 'Self.Element' does not conform to protocol 'Hashable'
 10 | public typealias SetUpdateSource<Element: Hashable> = AnySource<Update<SetChange<Element>>>
 11 |
 12 | public protocol ObservableSetType: ObservableType where Change == SetChange<Element> {
    |                                                                   `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 13 |     associatedtype Element
 14 |
/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: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/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/ObservableSet.swift:159:60: error: type 'Contents.Element' does not conform to protocol 'Hashable'
157 | }
158 |
159 | final class ObservableSetBox<Contents: ObservableSetType>: _AbstractObservableSet<Contents.Element> {
    |                                                            `- error: type 'Contents.Element' does not conform to protocol 'Hashable'
160 |     typealias Element = Contents.Element
161 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:170:25: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
168 |     override var isBuffered: Bool { return contents.isBuffered }
169 |     override var count: Int { return contents.count }
170 |     override var value: Set<Element> { return contents.value }
    |                         `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:171:19: error: method does not override any method from its superclass
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) }
    :
169 |     override var count: Int { return contents.count }
170 |     override var value: Set<Element> { return contents.value }
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
    |                   `- error: method does not override any method from its superclass
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
173 |     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:172:38: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
170 |     override var value: Set<Element> { return contents.value }
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
    |                                      `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
174 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:173:40: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
    |                                        `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
174 |
175 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<SetChange<Element>> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:175:19: error: method does not override any method from its superclass
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
174 |
175 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<SetChange<Element>> {
    |                   `- error: method does not override any method from its superclass
176 |         contents.add(sink)
177 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:180:19: error: method does not override any method from its superclass
178 |
179 |     @discardableResult
180 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<SetChange<Element>> {
    |                   `- error: method does not override any method from its superclass
181 |         return contents.remove(sink)
182 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:185:57: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
183 |
184 |     override var observableCount: AnyObservableValue<Int> { return contents.observableCount }
185 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
    |                                                         `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
186 | }
187 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:216:59: error: type 'Self.Element' does not conform to protocol 'Hashable'
214 |
215 | extension ObservableSetType {
216 |     public static func constant(_ value: Set<Element>) -> AnyObservableSet<Element> {
    |                                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
217 |         return ObservableConstantSet(value).anyObservableSet
218 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:216:42: error: type 'Self.Element' does not conform to protocol 'Hashable'
214 |
215 | extension ObservableSetType {
216 |     public static func constant(_ value: Set<Element>) -> AnyObservableSet<Element> {
    |                                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
217 |         return ObservableConstantSet(value).anyObservableSet
218 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:220:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
218 |     }
219 |
220 |     public static func emptyConstant() -> AnyObservableSet<Element> {
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
221 |         return constant([])
222 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:32:77: error: missing argument label 'where:' in call
 30 |     public var isBuffered: Bool { return false }
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
    |                                                                             `- error: missing argument label 'where:' in call
 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) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:32:77: error: cannot convert value of type 'Self.Element' to expected argument type '(Self.Element) throws -> Bool'
 30 |     public var isBuffered: Bool { return false }
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
    |                                                                             `- error: cannot convert value of type 'Self.Element' to expected argument type '(Self.Element) throws -> Bool'
 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) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:54:45: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |             update.map { change in
 53 |                 let old = count
 54 |                 count += numericCast(change.inserted.count - change.removed.count)
    |                                             `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |                 return .init(from: old, to: count)
 56 |             }
/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/ObservableSet.swift:54:69: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |             update.map { change in
 53 |                 let old = count
 54 |                 count += numericCast(change.inserted.count - change.removed.count)
    |                                                                     `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |                 return .init(from: old, to: count)
 56 |             }
/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 |
[167/186] Compiling GlueKit ObservableValue.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:30: error: generic struct 'SetChange' requires that 'Input.Element' conform to 'Hashable'
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                              `- error: generic struct 'SetChange' requires that 'Input.Element' conform to 'Hashable'
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Input.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Input.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:47: error: missing argument label 'where:' in call
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                                               `- error: missing argument label 'where:' in call
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:47: error: cannot convert value of type 'Input.Element' to expected argument type '(Input.Element) throws -> Bool'
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                                               `- error: cannot convert value of type 'Input.Element' to expected argument type '(Input.Element) throws -> Bool'
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/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/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/ObservableSet.swift:12:67: error: type 'Self.Element' does not conform to protocol 'Hashable'
 10 | public typealias SetUpdateSource<Element: Hashable> = AnySource<Update<SetChange<Element>>>
 11 |
 12 | public protocol ObservableSetType: ObservableType where Change == SetChange<Element> {
    |                                                                   `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 13 |     associatedtype Element
 14 |
/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: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/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/ObservableSet.swift:159:60: error: type 'Contents.Element' does not conform to protocol 'Hashable'
157 | }
158 |
159 | final class ObservableSetBox<Contents: ObservableSetType>: _AbstractObservableSet<Contents.Element> {
    |                                                            `- error: type 'Contents.Element' does not conform to protocol 'Hashable'
160 |     typealias Element = Contents.Element
161 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:170:25: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
168 |     override var isBuffered: Bool { return contents.isBuffered }
169 |     override var count: Int { return contents.count }
170 |     override var value: Set<Element> { return contents.value }
    |                         `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:171:19: error: method does not override any method from its superclass
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) }
    :
169 |     override var count: Int { return contents.count }
170 |     override var value: Set<Element> { return contents.value }
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
    |                   `- error: method does not override any method from its superclass
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
173 |     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:172:38: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
170 |     override var value: Set<Element> { return contents.value }
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
    |                                      `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
174 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:173:40: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
    |                                        `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
174 |
175 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<SetChange<Element>> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:175:19: error: method does not override any method from its superclass
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
174 |
175 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<SetChange<Element>> {
    |                   `- error: method does not override any method from its superclass
176 |         contents.add(sink)
177 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:180:19: error: method does not override any method from its superclass
178 |
179 |     @discardableResult
180 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<SetChange<Element>> {
    |                   `- error: method does not override any method from its superclass
181 |         return contents.remove(sink)
182 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:185:57: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
183 |
184 |     override var observableCount: AnyObservableValue<Int> { return contents.observableCount }
185 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
    |                                                         `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
186 | }
187 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:216:59: error: type 'Self.Element' does not conform to protocol 'Hashable'
214 |
215 | extension ObservableSetType {
216 |     public static func constant(_ value: Set<Element>) -> AnyObservableSet<Element> {
    |                                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
217 |         return ObservableConstantSet(value).anyObservableSet
218 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:216:42: error: type 'Self.Element' does not conform to protocol 'Hashable'
214 |
215 | extension ObservableSetType {
216 |     public static func constant(_ value: Set<Element>) -> AnyObservableSet<Element> {
    |                                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
217 |         return ObservableConstantSet(value).anyObservableSet
218 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:220:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
218 |     }
219 |
220 |     public static func emptyConstant() -> AnyObservableSet<Element> {
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
221 |         return constant([])
222 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:32:77: error: missing argument label 'where:' in call
 30 |     public var isBuffered: Bool { return false }
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
    |                                                                             `- error: missing argument label 'where:' in call
 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) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:32:77: error: cannot convert value of type 'Self.Element' to expected argument type '(Self.Element) throws -> Bool'
 30 |     public var isBuffered: Bool { return false }
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
    |                                                                             `- error: cannot convert value of type 'Self.Element' to expected argument type '(Self.Element) throws -> Bool'
 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) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:54:45: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |             update.map { change in
 53 |                 let old = count
 54 |                 count += numericCast(change.inserted.count - change.removed.count)
    |                                             `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |                 return .init(from: old, to: count)
 56 |             }
/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/ObservableSet.swift:54:69: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |             update.map { change in
 53 |                 let old = count
 54 |                 count += numericCast(change.inserted.count - change.removed.count)
    |                                                                     `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |                 return .init(from: old, to: count)
 56 |             }
/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 |
[168/186] Compiling GlueKit OwnedSink.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:30: error: generic struct 'SetChange' requires that 'Input.Element' conform to 'Hashable'
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                              `- error: generic struct 'SetChange' requires that 'Input.Element' conform to 'Hashable'
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Input.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Input.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:47: error: missing argument label 'where:' in call
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                                               `- error: missing argument label 'where:' in call
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:47: error: cannot convert value of type 'Input.Element' to expected argument type '(Input.Element) throws -> Bool'
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                                               `- error: cannot convert value of type 'Input.Element' to expected argument type '(Input.Element) throws -> Bool'
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/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/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/ObservableSet.swift:12:67: error: type 'Self.Element' does not conform to protocol 'Hashable'
 10 | public typealias SetUpdateSource<Element: Hashable> = AnySource<Update<SetChange<Element>>>
 11 |
 12 | public protocol ObservableSetType: ObservableType where Change == SetChange<Element> {
    |                                                                   `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 13 |     associatedtype Element
 14 |
/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: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/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/ObservableSet.swift:159:60: error: type 'Contents.Element' does not conform to protocol 'Hashable'
157 | }
158 |
159 | final class ObservableSetBox<Contents: ObservableSetType>: _AbstractObservableSet<Contents.Element> {
    |                                                            `- error: type 'Contents.Element' does not conform to protocol 'Hashable'
160 |     typealias Element = Contents.Element
161 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:170:25: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
168 |     override var isBuffered: Bool { return contents.isBuffered }
169 |     override var count: Int { return contents.count }
170 |     override var value: Set<Element> { return contents.value }
    |                         `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:171:19: error: method does not override any method from its superclass
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) }
    :
169 |     override var count: Int { return contents.count }
170 |     override var value: Set<Element> { return contents.value }
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
    |                   `- error: method does not override any method from its superclass
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
173 |     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:172:38: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
170 |     override var value: Set<Element> { return contents.value }
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
    |                                      `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
174 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:173:40: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
    |                                        `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
174 |
175 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<SetChange<Element>> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:175:19: error: method does not override any method from its superclass
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
174 |
175 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<SetChange<Element>> {
    |                   `- error: method does not override any method from its superclass
176 |         contents.add(sink)
177 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:180:19: error: method does not override any method from its superclass
178 |
179 |     @discardableResult
180 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<SetChange<Element>> {
    |                   `- error: method does not override any method from its superclass
181 |         return contents.remove(sink)
182 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:185:57: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
183 |
184 |     override var observableCount: AnyObservableValue<Int> { return contents.observableCount }
185 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
    |                                                         `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
186 | }
187 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:216:59: error: type 'Self.Element' does not conform to protocol 'Hashable'
214 |
215 | extension ObservableSetType {
216 |     public static func constant(_ value: Set<Element>) -> AnyObservableSet<Element> {
    |                                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
217 |         return ObservableConstantSet(value).anyObservableSet
218 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:216:42: error: type 'Self.Element' does not conform to protocol 'Hashable'
214 |
215 | extension ObservableSetType {
216 |     public static func constant(_ value: Set<Element>) -> AnyObservableSet<Element> {
    |                                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
217 |         return ObservableConstantSet(value).anyObservableSet
218 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:220:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
218 |     }
219 |
220 |     public static func emptyConstant() -> AnyObservableSet<Element> {
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
221 |         return constant([])
222 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:32:77: error: missing argument label 'where:' in call
 30 |     public var isBuffered: Bool { return false }
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
    |                                                                             `- error: missing argument label 'where:' in call
 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) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:32:77: error: cannot convert value of type 'Self.Element' to expected argument type '(Self.Element) throws -> Bool'
 30 |     public var isBuffered: Bool { return false }
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
    |                                                                             `- error: cannot convert value of type 'Self.Element' to expected argument type '(Self.Element) throws -> Bool'
 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) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:54:45: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |             update.map { change in
 53 |                 let old = count
 54 |                 count += numericCast(change.inserted.count - change.removed.count)
    |                                             `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |                 return .init(from: old, to: count)
 56 |             }
/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/ObservableSet.swift:54:69: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |             update.map { change in
 53 |                 let old = count
 54 |                 count += numericCast(change.inserted.count - change.removed.count)
    |                                                                     `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |                 return .init(from: old, to: count)
 56 |             }
/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 |
[169/186] Compiling GlueKit RefList.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:30: error: generic struct 'SetChange' requires that 'Input.Element' conform to 'Hashable'
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                              `- error: generic struct 'SetChange' requires that 'Input.Element' conform to 'Hashable'
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Input.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Input.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:47: error: missing argument label 'where:' in call
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                                               `- error: missing argument label 'where:' in call
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:47: error: cannot convert value of type 'Input.Element' to expected argument type '(Input.Element) throws -> Bool'
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                                               `- error: cannot convert value of type 'Input.Element' to expected argument type '(Input.Element) throws -> Bool'
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/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/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/ObservableSet.swift:12:67: error: type 'Self.Element' does not conform to protocol 'Hashable'
 10 | public typealias SetUpdateSource<Element: Hashable> = AnySource<Update<SetChange<Element>>>
 11 |
 12 | public protocol ObservableSetType: ObservableType where Change == SetChange<Element> {
    |                                                                   `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 13 |     associatedtype Element
 14 |
/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: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/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/ObservableSet.swift:159:60: error: type 'Contents.Element' does not conform to protocol 'Hashable'
157 | }
158 |
159 | final class ObservableSetBox<Contents: ObservableSetType>: _AbstractObservableSet<Contents.Element> {
    |                                                            `- error: type 'Contents.Element' does not conform to protocol 'Hashable'
160 |     typealias Element = Contents.Element
161 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:170:25: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
168 |     override var isBuffered: Bool { return contents.isBuffered }
169 |     override var count: Int { return contents.count }
170 |     override var value: Set<Element> { return contents.value }
    |                         `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:171:19: error: method does not override any method from its superclass
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) }
    :
169 |     override var count: Int { return contents.count }
170 |     override var value: Set<Element> { return contents.value }
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
    |                   `- error: method does not override any method from its superclass
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
173 |     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:172:38: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
170 |     override var value: Set<Element> { return contents.value }
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
    |                                      `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
174 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:173:40: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
    |                                        `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
174 |
175 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<SetChange<Element>> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:175:19: error: method does not override any method from its superclass
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
174 |
175 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<SetChange<Element>> {
    |                   `- error: method does not override any method from its superclass
176 |         contents.add(sink)
177 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:180:19: error: method does not override any method from its superclass
178 |
179 |     @discardableResult
180 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<SetChange<Element>> {
    |                   `- error: method does not override any method from its superclass
181 |         return contents.remove(sink)
182 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:185:57: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
183 |
184 |     override var observableCount: AnyObservableValue<Int> { return contents.observableCount }
185 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
    |                                                         `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
186 | }
187 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:216:59: error: type 'Self.Element' does not conform to protocol 'Hashable'
214 |
215 | extension ObservableSetType {
216 |     public static func constant(_ value: Set<Element>) -> AnyObservableSet<Element> {
    |                                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
217 |         return ObservableConstantSet(value).anyObservableSet
218 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:216:42: error: type 'Self.Element' does not conform to protocol 'Hashable'
214 |
215 | extension ObservableSetType {
216 |     public static func constant(_ value: Set<Element>) -> AnyObservableSet<Element> {
    |                                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
217 |         return ObservableConstantSet(value).anyObservableSet
218 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:220:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
218 |     }
219 |
220 |     public static func emptyConstant() -> AnyObservableSet<Element> {
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
221 |         return constant([])
222 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:32:77: error: missing argument label 'where:' in call
 30 |     public var isBuffered: Bool { return false }
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
    |                                                                             `- error: missing argument label 'where:' in call
 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) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:32:77: error: cannot convert value of type 'Self.Element' to expected argument type '(Self.Element) throws -> Bool'
 30 |     public var isBuffered: Bool { return false }
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
    |                                                                             `- error: cannot convert value of type 'Self.Element' to expected argument type '(Self.Element) throws -> Bool'
 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) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:54:45: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |             update.map { change in
 53 |                 let old = count
 54 |                 count += numericCast(change.inserted.count - change.removed.count)
    |                                             `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |                 return .init(from: old, to: count)
 56 |             }
/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/ObservableSet.swift:54:69: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |             update.map { change in
 53 |                 let old = count
 54 |                 count += numericCast(change.inserted.count - change.removed.count)
    |                                                                     `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |                 return .init(from: old, to: count)
 56 |             }
/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 |
[170/186] Compiling GlueKit Reference.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:30: error: generic struct 'SetChange' requires that 'Input.Element' conform to 'Hashable'
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                              `- error: generic struct 'SetChange' requires that 'Input.Element' conform to 'Hashable'
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Input.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Input.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:47: error: missing argument label 'where:' in call
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                                               `- error: missing argument label 'where:' in call
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:47: error: cannot convert value of type 'Input.Element' to expected argument type '(Input.Element) throws -> Bool'
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                                               `- error: cannot convert value of type 'Input.Element' to expected argument type '(Input.Element) throws -> Bool'
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/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/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/ObservableSet.swift:12:67: error: type 'Self.Element' does not conform to protocol 'Hashable'
 10 | public typealias SetUpdateSource<Element: Hashable> = AnySource<Update<SetChange<Element>>>
 11 |
 12 | public protocol ObservableSetType: ObservableType where Change == SetChange<Element> {
    |                                                                   `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 13 |     associatedtype Element
 14 |
/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: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/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/ObservableSet.swift:159:60: error: type 'Contents.Element' does not conform to protocol 'Hashable'
157 | }
158 |
159 | final class ObservableSetBox<Contents: ObservableSetType>: _AbstractObservableSet<Contents.Element> {
    |                                                            `- error: type 'Contents.Element' does not conform to protocol 'Hashable'
160 |     typealias Element = Contents.Element
161 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:170:25: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
168 |     override var isBuffered: Bool { return contents.isBuffered }
169 |     override var count: Int { return contents.count }
170 |     override var value: Set<Element> { return contents.value }
    |                         `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:171:19: error: method does not override any method from its superclass
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) }
    :
169 |     override var count: Int { return contents.count }
170 |     override var value: Set<Element> { return contents.value }
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
    |                   `- error: method does not override any method from its superclass
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
173 |     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:172:38: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
170 |     override var value: Set<Element> { return contents.value }
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
    |                                      `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
174 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:173:40: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
    |                                        `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
174 |
175 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<SetChange<Element>> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:175:19: error: method does not override any method from its superclass
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
174 |
175 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<SetChange<Element>> {
    |                   `- error: method does not override any method from its superclass
176 |         contents.add(sink)
177 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:180:19: error: method does not override any method from its superclass
178 |
179 |     @discardableResult
180 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<SetChange<Element>> {
    |                   `- error: method does not override any method from its superclass
181 |         return contents.remove(sink)
182 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:185:57: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
183 |
184 |     override var observableCount: AnyObservableValue<Int> { return contents.observableCount }
185 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
    |                                                         `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
186 | }
187 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:216:59: error: type 'Self.Element' does not conform to protocol 'Hashable'
214 |
215 | extension ObservableSetType {
216 |     public static func constant(_ value: Set<Element>) -> AnyObservableSet<Element> {
    |                                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
217 |         return ObservableConstantSet(value).anyObservableSet
218 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:216:42: error: type 'Self.Element' does not conform to protocol 'Hashable'
214 |
215 | extension ObservableSetType {
216 |     public static func constant(_ value: Set<Element>) -> AnyObservableSet<Element> {
    |                                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
217 |         return ObservableConstantSet(value).anyObservableSet
218 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:220:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
218 |     }
219 |
220 |     public static func emptyConstant() -> AnyObservableSet<Element> {
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
221 |         return constant([])
222 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:32:77: error: missing argument label 'where:' in call
 30 |     public var isBuffered: Bool { return false }
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
    |                                                                             `- error: missing argument label 'where:' in call
 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) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:32:77: error: cannot convert value of type 'Self.Element' to expected argument type '(Self.Element) throws -> Bool'
 30 |     public var isBuffered: Bool { return false }
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
    |                                                                             `- error: cannot convert value of type 'Self.Element' to expected argument type '(Self.Element) throws -> Bool'
 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) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:54:45: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |             update.map { change in
 53 |                 let old = count
 54 |                 count += numericCast(change.inserted.count - change.removed.count)
    |                                             `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |                 return .init(from: old, to: count)
 56 |             }
/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/ObservableSet.swift:54:69: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |             update.map { change in
 53 |                 let old = count
 54 |                 count += numericCast(change.inserted.count - change.removed.count)
    |                                                                     `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |                 return .init(from: old, to: count)
 56 |             }
/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 |
[171/186] Compiling GlueKit SetChange.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:30: error: generic struct 'SetChange' requires that 'Input.Element' conform to 'Hashable'
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                              `- error: generic struct 'SetChange' requires that 'Input.Element' conform to 'Hashable'
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Input.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Input.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:47: error: missing argument label 'where:' in call
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                                               `- error: missing argument label 'where:' in call
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableContains.swift:25:47: error: cannot convert value of type 'Input.Element' to expected argument type '(Input.Element) throws -> Bool'
23 |         self._updates = input.updates.flatMap { update in
24 |             update.flatMap {
25 |                 let old = $0.removed.contains(member)
   |                                               `- error: cannot convert value of type 'Input.Element' to expected argument type '(Input.Element) throws -> Bool'
26 |                 let new = $0.inserted.contains(member)
27 |                 if old == new {
/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/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/ObservableSet.swift:12:67: error: type 'Self.Element' does not conform to protocol 'Hashable'
 10 | public typealias SetUpdateSource<Element: Hashable> = AnySource<Update<SetChange<Element>>>
 11 |
 12 | public protocol ObservableSetType: ObservableType where Change == SetChange<Element> {
    |                                                                   `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 13 |     associatedtype Element
 14 |
/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: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/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/ObservableSet.swift:159:60: error: type 'Contents.Element' does not conform to protocol 'Hashable'
157 | }
158 |
159 | final class ObservableSetBox<Contents: ObservableSetType>: _AbstractObservableSet<Contents.Element> {
    |                                                            `- error: type 'Contents.Element' does not conform to protocol 'Hashable'
160 |     typealias Element = Contents.Element
161 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:170:25: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
168 |     override var isBuffered: Bool { return contents.isBuffered }
169 |     override var count: Int { return contents.count }
170 |     override var value: Set<Element> { return contents.value }
    |                         `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:171:19: error: method does not override any method from its superclass
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) }
    :
169 |     override var count: Int { return contents.count }
170 |     override var value: Set<Element> { return contents.value }
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
    |                   `- error: method does not override any method from its superclass
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
173 |     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:172:38: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
170 |     override var value: Set<Element> { return contents.value }
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
    |                                      `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
174 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:173:40: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
171 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
172 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
    |                                        `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
174 |
175 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<SetChange<Element>> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:175:19: error: method does not override any method from its superclass
173 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
174 |
175 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<SetChange<Element>> {
    |                   `- error: method does not override any method from its superclass
176 |         contents.add(sink)
177 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:180:19: error: method does not override any method from its superclass
178 |
179 |     @discardableResult
180 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<SetChange<Element>> {
    |                   `- error: method does not override any method from its superclass
181 |         return contents.remove(sink)
182 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:185:57: error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
183 |
184 |     override var observableCount: AnyObservableValue<Int> { return contents.observableCount }
185 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
    |                                                         `- error: type 'ObservableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
186 | }
187 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:216:59: error: type 'Self.Element' does not conform to protocol 'Hashable'
214 |
215 | extension ObservableSetType {
216 |     public static func constant(_ value: Set<Element>) -> AnyObservableSet<Element> {
    |                                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
217 |         return ObservableConstantSet(value).anyObservableSet
218 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:216:42: error: type 'Self.Element' does not conform to protocol 'Hashable'
214 |
215 | extension ObservableSetType {
216 |     public static func constant(_ value: Set<Element>) -> AnyObservableSet<Element> {
    |                                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
217 |         return ObservableConstantSet(value).anyObservableSet
218 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:220:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
218 |     }
219 |
220 |     public static func emptyConstant() -> AnyObservableSet<Element> {
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
221 |         return constant([])
222 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:32:77: error: missing argument label 'where:' in call
 30 |     public var isBuffered: Bool { return false }
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
    |                                                                             `- error: missing argument label 'where:' in call
 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) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:32:77: error: cannot convert value of type 'Self.Element' to expected argument type '(Self.Element) throws -> Bool'
 30 |     public var isBuffered: Bool { return false }
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
    |                                                                             `- error: cannot convert value of type 'Self.Element' to expected argument type '(Self.Element) throws -> Bool'
 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) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:54:45: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |             update.map { change in
 53 |                 let old = count
 54 |                 count += numericCast(change.inserted.count - change.removed.count)
    |                                             `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |                 return .init(from: old, to: count)
 56 |             }
/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/ObservableSet.swift:54:69: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |             update.map { change in
 53 |                 let old = count
 54 |                 count += numericCast(change.inserted.count - change.removed.count)
    |                                                                     `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |                 return .init(from: old, to: count)
 56 |             }
/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 |
[172/186] Compiling GlueKit DispatchSource.swift
/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: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/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 |     }
[173/186] Compiling GlueKit DistinctUnion.swift
/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: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/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 |     }
[174/186] Compiling GlueKit DistinctValue.swift
/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: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/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 |     }
[175/186] Compiling GlueKit Locks.swift
/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: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/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 |     }
[176/186] Compiling GlueKit MergedSource.swift
/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: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/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 |     }
[177/186] Compiling GlueKit NSButton Glue.swift
/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: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/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 |     }
[178/186] Compiling GlueKit NSControl Glue.swift
/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: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/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 |     }
[179/186] Compiling GlueKit NSNotificationCenter Support.swift
/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: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/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 |     }
[180/186] Compiling GlueKit NSObject Glue.swift
/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: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/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 |     }
[181/186] Compiling GlueKit NSPopUpButton Glue.swift
/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: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/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 |     }
Fetching https://github.com/attaswift/SipHash
Fetching https://github.com/attaswift/BigInt
Fetching https://github.com/attaswift/Benchmarking
Fetching https://github.com/attaswift/GlueKit
Fetching https://github.com/attaswift/OptionParser
[1/82] Fetching optionparser
[27/4098] Fetching optionparser, gluekit
[68/4163] Fetching optionparser, gluekit, benchmarking
[133/4603] Fetching optionparser, gluekit, benchmarking, siphash
[530/9410] Fetching optionparser, gluekit, benchmarking, siphash, bigint
Fetched https://github.com/attaswift/SipHash from cache (0.90s)
[2901/8970] Fetching optionparser, gluekit, benchmarking, bigint
Fetched https://github.com/attaswift/Benchmarking from cache (1.23s)
Fetched https://github.com/attaswift/OptionParser from cache (1.23s)
Fetched https://github.com/attaswift/BigInt from cache (1.24s)
Fetched https://github.com/attaswift/GlueKit from cache (1.24s)
Computing version for https://github.com/attaswift/OptionParser
Computed https://github.com/attaswift/OptionParser at 1.0.0 (1.75s)
Computing version for https://github.com/attaswift/GlueKit
Computed https://github.com/attaswift/GlueKit at 0.2.0 (0.48s)
Fetching https://github.com/attaswift/BTree
[1/3349] Fetching btree
Fetched https://github.com/attaswift/BTree from cache (1.08s)
Computing version for https://github.com/attaswift/Benchmarking
Computed https://github.com/attaswift/Benchmarking at 1.0.0 (1.57s)
Computing version for https://github.com/attaswift/BTree
Computed https://github.com/attaswift/BTree at 4.1.0 (0.48s)
Computing version for https://github.com/attaswift/SipHash
Computed https://github.com/attaswift/SipHash at 1.2.2 (0.46s)
Computing version for https://github.com/attaswift/BigInt
Computed https://github.com/attaswift/BigInt at 3.1.0 (0.47s)
Creating working copy for https://github.com/attaswift/BigInt
Working copy of https://github.com/attaswift/BigInt resolved at 3.1.0
Creating working copy for https://github.com/attaswift/Benchmarking
Working copy of https://github.com/attaswift/Benchmarking resolved at 1.0.0
Creating working copy for https://github.com/attaswift/BTree
Working copy of https://github.com/attaswift/BTree resolved at 4.1.0
Creating working copy for https://github.com/attaswift/OptionParser
Working copy of https://github.com/attaswift/OptionParser resolved at 1.0.0
Creating working copy for https://github.com/attaswift/SipHash
Working copy of https://github.com/attaswift/SipHash resolved at 1.2.2
Creating working copy for https://github.com/attaswift/GlueKit
Working copy of https://github.com/attaswift/GlueKit resolved at 0.2.0
warning: 'spi-builder-workspace': dependency 'siphash' is not used by any target
BUILD FAILURE 6.2 macosSpm