The Swift Package Index logo.Swift Package Index

Build Information

Failed to build Attabench, reference master (7fc220), with Swift 6.2 for macOS (SPM) on 19 Jun 2025 01:41:28 UTC.

Build Command

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

Build Log

    |                                             `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:266:52: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
    |                                                    `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
268 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:267:37: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
    |                                     `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
268 |
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:269:19: error: method does not override any method from its superclass
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
268 |
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
    |                   `- error: method does not override any method from its superclass
270 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:120:15: note: potential overridden instance method 'contains' here
118 |     open var isBuffered: Bool { return false }
119 |     open var count: Int { return value.count }
120 |     open func contains(_ member: Element) -> Bool { return value.contains(member) }
    |               `- note: potential overridden instance method 'contains' here
121 |     open func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
122 |     open func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:270:38: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
268 |
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
270 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
    |                                      `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
272 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:271:40: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
269 |     override func contains(_ member: Element) -> Bool { return contents.contains(member) }
270 |     override func isSubset(of other: Set<Element>) -> Bool { return contents.isSubset(of: other) }
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
    |                                        `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
272 |
273 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:273:19: error: method does not override any method from its superclass
271 |     override func isSuperset(of other: Set<Element>) -> Bool { return contents.isSuperset(of: other) }
272 |
273 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
    |                   `- error: method does not override any method from its superclass
274 |         contents.add(sink)
275 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:278:19: error: method does not override any method from its superclass
276 |
277 |     @discardableResult
278 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
    |                   `- error: method does not override any method from its superclass
279 |         return contents.remove(sink)
280 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:284:57: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
282 |     override var observableCount: AnyObservableValue<Int> { return contents.observableCount }
283 |
284 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
    |                                                         `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
285 |     override var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { return contents.anyUpdatableValue }
286 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:285:55: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
283 |
284 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
285 |     override var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { return contents.anyUpdatableValue }
    |                                                       `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
286 | }
287 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:30:19: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 28 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 29 |         if contains(member) {
 30 |             apply(SetChange(removed: [member]))
    |                   `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 31 |         }
 32 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:37:19: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 35 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 36 |         if !contains(member) {
 37 |             apply(SetChange(inserted: [member]))
    |                   `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 38 |         }
 39 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:44:19: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 42 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 43 |         if !isEmpty {
 44 |             apply(SetChange(removed: self.value))
    |                   `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 45 |         }
 46 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:51:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 49 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 50 |         let difference = other.subtracting(value)
 51 |         self.apply(SetChange(inserted: difference))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 52 |     }
 53 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:57:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 55 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 56 |         let difference = value.subtracting(other)
 57 |         self.apply(SetChange(removed: difference))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 58 |     }
 59 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:63:34: error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 61 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 62 |         let value = self.value
 63 |         let intersection = value.intersection(other)
    |                                  `- error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 64 |         let additions = other.subtracting(value)
 65 |         self.apply(SetChange(removed: intersection, inserted: additions))
Swift.Set:1:11: note: where 'Element' = 'Self.Element'
 1 | extension Set {
   |           `- note: where 'Element' = 'Self.Element'
 2 |     @inlinable public mutating func subtract(_ other: Set<Element>)
 3 |     @inlinable public func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:65:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 63 |         let intersection = value.intersection(other)
 64 |         let additions = other.subtracting(value)
 65 |         self.apply(SetChange(removed: intersection, inserted: additions))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 66 |     }
 67 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:70:34: error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 68 |     public func subtract(_ other: Set<Element>) {
 69 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 70 |         let intersection = value.intersection(other)
    |                                  `- error: referencing instance method 'intersection' on 'Set' requires that 'Self.Element' conform to 'Hashable'
 71 |         self.apply(SetChange(removed: intersection))
 72 |     }
Swift.Set:1:11: note: where 'Element' = 'Self.Element'
 1 | extension Set {
   |           `- note: where 'Element' = 'Self.Element'
 2 |     @inlinable public mutating func subtract(_ other: Set<Element>)
 3 |     @inlinable public func isSubset(of other: Set<Element>) -> Bool
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:71:20: error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 69 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 70 |         let intersection = value.intersection(other)
 71 |         self.apply(SetChange(removed: intersection))
    |                    `- error: generic struct 'SetChange' requires that 'Self.Element' conform to 'Hashable'
 72 |     }
 73 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:15: note: where 'Element' = 'Self.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Self.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:75:43: error: generic parameter 'Element' could not be inferred
 73 |
 74 |     public func apply(_ update: ValueUpdate<Set<Element>>) {
 75 |         self.apply(update.map { change in SetChange(from: change.old, to: change.new) })
    |                                           |- error: generic parameter 'Element' could not be inferred
    |                                           `- note: explicitly specify the generic arguments to fix this issue
 76 |     }
 77 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetChange.swift:9:25: note: 'Element' declared as parameter to type 'SetChange'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |                         `- note: 'Element' declared as parameter to type 'SetChange'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:33:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
 31 |     public var count: Int { return value.count }
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
 33 |     public func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
    |                                    `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 34 |     public func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
 35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:34:38: error: type 'Self.Element' does not conform to protocol 'Hashable'
 32 |     public func contains(_ member: Element) -> Bool { return value.contains(member) }
 33 |     public func isSubset(of other: Set<Element>) -> Bool { return value.isSubset(of: other) }
 34 |     public func isSuperset(of other: Set<Element>) -> Bool { return value.isSuperset(of: other) }
    |                                      `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 35 |
 36 |     public var isEmpty: Bool { return count == 0 }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:68:34: error: type 'Self.Element' does not conform to protocol 'Hashable'
 66 |     }
 67 |
 68 |     public var anyObservableSet: AnyObservableSet<Element> {
    |                                  `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 69 |         return AnyObservableSet(box: ObservableSetBox(self))
 70 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableSet.swift:38:54: error: type 'Self.Element' does not conform to protocol 'Hashable'
 36 |     public var isEmpty: Bool { return count == 0 }
 37 |
 38 |     internal var valueUpdates: AnySource<ValueUpdate<Set<Element>>> {
    |                                                      `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 39 |         var value = self.value
 40 |         return self.updates.map { event in
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:194:25: error: cannot convert value of type '(Update<SetChange<Element>>) -> ()' to expected argument type '(Update<ValueChange<Set<Element>>>) -> Void'
192 |         return AnyUpdatableValue(
193 |             getter: { self.value },
194 |             apply: self.apply,
    |                         `- error: cannot convert value of type '(Update<SetChange<Element>>) -> ()' to expected argument type '(Update<ValueChange<Set<Element>>>) -> Void'
195 |             updates: self.valueUpdates)
196 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Update.swift:22:20: note: arguments to generic parameter 'Change' ('ValueChange<Set<Element>>' and 'SetChange<Element>') are expected to be equal
20 | ///
21 | /// Note that is perfectly legal for a transaction to include no actual changes.
22 | public enum Update<Change: ChangeType> {
   |                    `- note: arguments to generic parameter 'Change' ('ValueChange<Set<Element>>' and 'SetChange<Element>') are expected to be equal
23 |     public typealias Value = Change.Value
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:274:18: error: instance method 'add' requires the types 'Sink.Value' and 'Update<Contents.Change>' be equivalent
272 |
273 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
274 |         contents.add(sink)
    |                  `- error: instance method 'add' requires the types 'Sink.Value' and 'Update<Contents.Change>' be equivalent
275 |     }
276 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<Contents.Change>'
14 |     var value: Value { get }
15 |
16 |     func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<Contents.Change>'
17 |
18 |     @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:279:25: error: instance method 'remove' requires the types 'Sink.Value' and 'Update<Contents.Change>' be equivalent
277 |     @discardableResult
278 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
279 |         return contents.remove(sink)
    |                         `- error: instance method 'remove' requires the types 'Sink.Value' and 'Update<Contents.Change>' be equivalent
280 |     }
281 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<Contents.Change>'
17 |
18 |     @discardableResult
19 |     func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'Sink.Value', 'Update<Self.Change>' = 'Update<Contents.Change>'
20 | }
21 |
[172/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 |
[173/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 |
[174/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 |
[175/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 |
[176/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 |
[177/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 |
[178/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 |
[179/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 |
[180/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 |
[181/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 |
Fetching https://github.com/attaswift/Benchmarking
[1/65] Fetching benchmarking
Fetched https://github.com/attaswift/Benchmarking from cache (0.57s)
Fetching https://github.com/attaswift/BigInt
Fetching https://github.com/attaswift/OptionParser
Fetching https://github.com/attaswift/SipHash
Fetching https://github.com/attaswift/GlueKit
[1/4016] Fetching gluekit
[42/4098] Fetching gluekit, optionparser
[68/8905] Fetching gluekit, optionparser, bigint
[69/9345] Fetching gluekit, optionparser, bigint, siphash
Fetched https://github.com/attaswift/GlueKit from cache (0.98s)
[4460/5329] Fetching optionparser, bigint, siphash
Fetched https://github.com/attaswift/SipHash from cache (1.12s)
Fetched https://github.com/attaswift/BigInt from cache (1.12s)
Fetched https://github.com/attaswift/OptionParser from cache (1.12s)
Computing version for https://github.com/attaswift/OptionParser
Computed https://github.com/attaswift/OptionParser at 1.0.0 (1.65s)
Computing version for https://github.com/attaswift/GlueKit
Computed https://github.com/attaswift/GlueKit at 0.2.0 (0.51s)
Fetching https://github.com/attaswift/BTree
[1/3349] Fetching btree
Fetched https://github.com/attaswift/BTree from cache (1.02s)
Computing version for https://github.com/attaswift/BTree
Computed https://github.com/attaswift/BTree at 4.1.0 (1.55s)
Computing version for https://github.com/attaswift/SipHash
Computed https://github.com/attaswift/SipHash at 1.2.2 (0.50s)
Computing version for https://github.com/attaswift/BigInt
Computed https://github.com/attaswift/BigInt at 3.1.0 (0.51s)
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/Benchmarking
Working copy of https://github.com/attaswift/Benchmarking resolved at master (5fb2680)
Creating working copy for https://github.com/attaswift/GlueKit
Working copy of https://github.com/attaswift/GlueKit resolved at 0.2.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/BigInt
Working copy of https://github.com/attaswift/BigInt resolved at 3.1.0
Creating working copy for https://github.com/attaswift/BTree
Working copy of https://github.com/attaswift/BTree resolved at 4.1.0
warning: 'spi-builder-workspace': dependency 'siphash' is not used by any target
BUILD FAILURE 6.2 macosSpm