The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Failed to build Attabench, reference master (7fc220), with Swift 6.2 (beta) 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