The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Failed to build Attabench, reference master (7fc220), with Swift 6.0 for macOS (SPM) on 1 Nov 2024 19:31:22 UTC.

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

60 |                 _value.apply(change)
61 |                 _pendingChange = nil
62 |                 sendChange(change)
   |                 `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
63 |             }
64 |             endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'BufferedObservableSet<Content>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:64:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
62 |                 sendChange(change)
63 |             }
64 |             endTransaction()
   |             `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
65 |         }
66 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'BufferedObservableSet<Content>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
[176/186] Compiling GlueKit ArrayVariable.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableValueType where Value: ObservableSetType {
10 |     public func unpacked() -> AnyObservableSet<Value.Element> {
   |                               `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 |         return UnpackedObservableSetReference(self).anyObservableSet
12 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 22 |
 23 |     // Required members
 24 |     var value: [Element] { get nonmutating set }
    |         `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 25 |     func apply(_ update: ArrayUpdate<Element>)
 26 |     subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 |     ///
58 |     /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 |     var value: Value { get nonmutating set }
   |         `- note: attempt to override property here
60 |
61 |     func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:10:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableSetType {
10 |     public func buffered() -> AnyObservableSet<Element> {
   |                               `- error: type 'Self.Element' does not conform to protocol 'Hashable'
11 |         if isBuffered {
12 |             return anyObservableSet
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:18:67: error: type 'Content.Element' does not conform to protocol 'Hashable'
16 | }
17 |
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
   |                                                                   `- error: type 'Content.Element' does not conform to protocol 'Hashable'
19 |     typealias Element = Content.Element
20 |     typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:20:24: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
19 |     typealias Element = Content.Element
20 |     typealias Change = SetChange<Element>
   |                        `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
21 |
22 |     private struct BufferedSink: UniqueOwnedSink {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:27:32: error: type 'Content.Element' does not conform to protocol 'Hashable'
25 |         unowned(unsafe) let owner: Owner
26 |
27 |         func receive(_ update: SetUpdate<Content.Element>) {
   |                                `- error: type 'Content.Element' does not conform to protocol 'Hashable'
28 |             owner.applyUpdate(update)
29 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:22:20: error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
20 |     typealias Change = SetChange<Element>
21 |
22 |     private struct BufferedSink: UniqueOwnedSink {
   |                    `- error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
23 |         typealias Owner = BufferedObservableSet
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:33:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
31 |
32 |     private let _content: Content
33 |     private var _value: Set<Element>
   |                         `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
34 |     private var _pendingChange: Change? = nil
35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:47:32: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
45 |     }
46 |
47 |     func applyUpdate(_ update: SetUpdate<Element>) {
   |                                `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
48 |         switch update {
49 |         case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
74 |     }
75 |
76 |     override var value: Set<Element> {
   |                         `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
77 |         return _value
78 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:18: error: property does not override any property from its superclass
74 |     }
75 |
76 |     override var value: Set<Element> {
   |                  `- error: property does not override any property from its superclass
77 |         return _value
78 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:80:19: error: method does not override any method from its superclass
78 |     }
79 |
80 |     override func contains(_ member: Element) -> Bool {
   |                   `- error: method does not override any method from its superclass
81 |         return _value.contains(member)
82 |     }
/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/BufferedSet.swift:84:38: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
82 |     }
83 |
84 |     override func isSubset(of other: Set<Element>) -> Bool {
   |                                      `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
85 |         return _value.isSubset(of: other)
86 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:84:19: error: method does not override any method from its superclass
82 |     }
83 |
84 |     override func isSubset(of other: Set<Element>) -> Bool {
   |                   `- error: method does not override any method from its superclass
85 |         return _value.isSubset(of: other)
86 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:40: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
86 |     }
87 |
88 |     override func isSuperset(of other: Set<Element>) -> Bool {
   |                                        `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
89 |         return _value.isSuperset(of: other)
90 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:19: error: method does not override any method from its superclass
86 |     }
87 |
88 |     override func isSuperset(of other: Set<Element>) -> Bool {
   |                   `- error: method does not override any method from its superclass
89 |         return _value.isSuperset(of: other)
90 |     }
/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/BufferedSet.swift:40:18: error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
38 |         _value = content.value
39 |         super.init()
40 |         _content.add(BufferedSink(owner: self))
   |                  `- error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
41 |     }
42 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
14 |     var value: Value { get }
15 |
16 |     func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 |     @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:44:18: error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
42 |
43 |     deinit {
44 |         _content.remove(BufferedSink(owner: self))
   |                  `- error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
45 |     }
46 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 |     @discardableResult
19 |     func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:50:13: error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
48 |         switch update {
49 |         case .beginTransaction:
50 |             beginTransaction()
   |             `- error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
51 |         case .change(let change):
52 |             if _pendingChange != nil {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'BufferedObservableSet<Content>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:61:34: error: 'nil' requires a contextual type
59 |             if let change = _pendingChange {
60 |                 _value.apply(change)
61 |                 _pendingChange = nil
   |                                  `- error: 'nil' requires a contextual type
62 |                 sendChange(change)
63 |             }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:62:17: error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
60 |                 _value.apply(change)
61 |                 _pendingChange = nil
62 |                 sendChange(change)
   |                 `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
63 |             }
64 |             endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'BufferedObservableSet<Content>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:64:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
62 |                 sendChange(change)
63 |             }
64 |             endTransaction()
   |             `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
65 |         }
66 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'BufferedObservableSet<Content>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
[177/186] Compiling GlueKit BracketingSource.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableValueType where Value: ObservableSetType {
10 |     public func unpacked() -> AnyObservableSet<Value.Element> {
   |                               `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 |         return UnpackedObservableSetReference(self).anyObservableSet
12 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 22 |
 23 |     // Required members
 24 |     var value: [Element] { get nonmutating set }
    |         `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 25 |     func apply(_ update: ArrayUpdate<Element>)
 26 |     subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 |     ///
58 |     /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 |     var value: Value { get nonmutating set }
   |         `- note: attempt to override property here
60 |
61 |     func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:10:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableSetType {
10 |     public func buffered() -> AnyObservableSet<Element> {
   |                               `- error: type 'Self.Element' does not conform to protocol 'Hashable'
11 |         if isBuffered {
12 |             return anyObservableSet
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:18:67: error: type 'Content.Element' does not conform to protocol 'Hashable'
16 | }
17 |
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
   |                                                                   `- error: type 'Content.Element' does not conform to protocol 'Hashable'
19 |     typealias Element = Content.Element
20 |     typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:20:24: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
19 |     typealias Element = Content.Element
20 |     typealias Change = SetChange<Element>
   |                        `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
21 |
22 |     private struct BufferedSink: UniqueOwnedSink {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:27:32: error: type 'Content.Element' does not conform to protocol 'Hashable'
25 |         unowned(unsafe) let owner: Owner
26 |
27 |         func receive(_ update: SetUpdate<Content.Element>) {
   |                                `- error: type 'Content.Element' does not conform to protocol 'Hashable'
28 |             owner.applyUpdate(update)
29 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:22:20: error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
20 |     typealias Change = SetChange<Element>
21 |
22 |     private struct BufferedSink: UniqueOwnedSink {
   |                    `- error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
23 |         typealias Owner = BufferedObservableSet
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:33:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
31 |
32 |     private let _content: Content
33 |     private var _value: Set<Element>
   |                         `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
34 |     private var _pendingChange: Change? = nil
35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:47:32: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
45 |     }
46 |
47 |     func applyUpdate(_ update: SetUpdate<Element>) {
   |                                `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
48 |         switch update {
49 |         case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
74 |     }
75 |
76 |     override var value: Set<Element> {
   |                         `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
77 |         return _value
78 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:18: error: property does not override any property from its superclass
74 |     }
75 |
76 |     override var value: Set<Element> {
   |                  `- error: property does not override any property from its superclass
77 |         return _value
78 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:80:19: error: method does not override any method from its superclass
78 |     }
79 |
80 |     override func contains(_ member: Element) -> Bool {
   |                   `- error: method does not override any method from its superclass
81 |         return _value.contains(member)
82 |     }
/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/BufferedSet.swift:84:38: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
82 |     }
83 |
84 |     override func isSubset(of other: Set<Element>) -> Bool {
   |                                      `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
85 |         return _value.isSubset(of: other)
86 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:84:19: error: method does not override any method from its superclass
82 |     }
83 |
84 |     override func isSubset(of other: Set<Element>) -> Bool {
   |                   `- error: method does not override any method from its superclass
85 |         return _value.isSubset(of: other)
86 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:40: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
86 |     }
87 |
88 |     override func isSuperset(of other: Set<Element>) -> Bool {
   |                                        `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
89 |         return _value.isSuperset(of: other)
90 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:19: error: method does not override any method from its superclass
86 |     }
87 |
88 |     override func isSuperset(of other: Set<Element>) -> Bool {
   |                   `- error: method does not override any method from its superclass
89 |         return _value.isSuperset(of: other)
90 |     }
/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/BufferedSet.swift:40:18: error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
38 |         _value = content.value
39 |         super.init()
40 |         _content.add(BufferedSink(owner: self))
   |                  `- error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
41 |     }
42 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
14 |     var value: Value { get }
15 |
16 |     func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 |     @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:44:18: error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
42 |
43 |     deinit {
44 |         _content.remove(BufferedSink(owner: self))
   |                  `- error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
45 |     }
46 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 |     @discardableResult
19 |     func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:50:13: error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
48 |         switch update {
49 |         case .beginTransaction:
50 |             beginTransaction()
   |             `- error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
51 |         case .change(let change):
52 |             if _pendingChange != nil {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'BufferedObservableSet<Content>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:61:34: error: 'nil' requires a contextual type
59 |             if let change = _pendingChange {
60 |                 _value.apply(change)
61 |                 _pendingChange = nil
   |                                  `- error: 'nil' requires a contextual type
62 |                 sendChange(change)
63 |             }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:62:17: error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
60 |                 _value.apply(change)
61 |                 _pendingChange = nil
62 |                 sendChange(change)
   |                 `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
63 |             }
64 |             endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'BufferedObservableSet<Content>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:64:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
62 |                 sendChange(change)
63 |             }
64 |             endTransaction()
   |             `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
65 |         }
66 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'BufferedObservableSet<Content>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
[178/186] Compiling GlueKit BufferedArray.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableValueType where Value: ObservableSetType {
10 |     public func unpacked() -> AnyObservableSet<Value.Element> {
   |                               `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 |         return UnpackedObservableSetReference(self).anyObservableSet
12 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 22 |
 23 |     // Required members
 24 |     var value: [Element] { get nonmutating set }
    |         `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 25 |     func apply(_ update: ArrayUpdate<Element>)
 26 |     subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 |     ///
58 |     /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 |     var value: Value { get nonmutating set }
   |         `- note: attempt to override property here
60 |
61 |     func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:10:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableSetType {
10 |     public func buffered() -> AnyObservableSet<Element> {
   |                               `- error: type 'Self.Element' does not conform to protocol 'Hashable'
11 |         if isBuffered {
12 |             return anyObservableSet
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:18:67: error: type 'Content.Element' does not conform to protocol 'Hashable'
16 | }
17 |
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
   |                                                                   `- error: type 'Content.Element' does not conform to protocol 'Hashable'
19 |     typealias Element = Content.Element
20 |     typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:20:24: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
19 |     typealias Element = Content.Element
20 |     typealias Change = SetChange<Element>
   |                        `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
21 |
22 |     private struct BufferedSink: UniqueOwnedSink {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:27:32: error: type 'Content.Element' does not conform to protocol 'Hashable'
25 |         unowned(unsafe) let owner: Owner
26 |
27 |         func receive(_ update: SetUpdate<Content.Element>) {
   |                                `- error: type 'Content.Element' does not conform to protocol 'Hashable'
28 |             owner.applyUpdate(update)
29 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:22:20: error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
20 |     typealias Change = SetChange<Element>
21 |
22 |     private struct BufferedSink: UniqueOwnedSink {
   |                    `- error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
23 |         typealias Owner = BufferedObservableSet
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:33:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
31 |
32 |     private let _content: Content
33 |     private var _value: Set<Element>
   |                         `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
34 |     private var _pendingChange: Change? = nil
35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:47:32: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
45 |     }
46 |
47 |     func applyUpdate(_ update: SetUpdate<Element>) {
   |                                `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
48 |         switch update {
49 |         case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
74 |     }
75 |
76 |     override var value: Set<Element> {
   |                         `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
77 |         return _value
78 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:18: error: property does not override any property from its superclass
74 |     }
75 |
76 |     override var value: Set<Element> {
   |                  `- error: property does not override any property from its superclass
77 |         return _value
78 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:80:19: error: method does not override any method from its superclass
78 |     }
79 |
80 |     override func contains(_ member: Element) -> Bool {
   |                   `- error: method does not override any method from its superclass
81 |         return _value.contains(member)
82 |     }
/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/BufferedSet.swift:84:38: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
82 |     }
83 |
84 |     override func isSubset(of other: Set<Element>) -> Bool {
   |                                      `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
85 |         return _value.isSubset(of: other)
86 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:84:19: error: method does not override any method from its superclass
82 |     }
83 |
84 |     override func isSubset(of other: Set<Element>) -> Bool {
   |                   `- error: method does not override any method from its superclass
85 |         return _value.isSubset(of: other)
86 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:40: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
86 |     }
87 |
88 |     override func isSuperset(of other: Set<Element>) -> Bool {
   |                                        `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
89 |         return _value.isSuperset(of: other)
90 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:19: error: method does not override any method from its superclass
86 |     }
87 |
88 |     override func isSuperset(of other: Set<Element>) -> Bool {
   |                   `- error: method does not override any method from its superclass
89 |         return _value.isSuperset(of: other)
90 |     }
/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/BufferedSet.swift:40:18: error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
38 |         _value = content.value
39 |         super.init()
40 |         _content.add(BufferedSink(owner: self))
   |                  `- error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
41 |     }
42 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
14 |     var value: Value { get }
15 |
16 |     func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 |     @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:44:18: error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
42 |
43 |     deinit {
44 |         _content.remove(BufferedSink(owner: self))
   |                  `- error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
45 |     }
46 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 |     @discardableResult
19 |     func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:50:13: error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
48 |         switch update {
49 |         case .beginTransaction:
50 |             beginTransaction()
   |             `- error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
51 |         case .change(let change):
52 |             if _pendingChange != nil {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'BufferedObservableSet<Content>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:61:34: error: 'nil' requires a contextual type
59 |             if let change = _pendingChange {
60 |                 _value.apply(change)
61 |                 _pendingChange = nil
   |                                  `- error: 'nil' requires a contextual type
62 |                 sendChange(change)
63 |             }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:62:17: error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
60 |                 _value.apply(change)
61 |                 _pendingChange = nil
62 |                 sendChange(change)
   |                 `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
63 |             }
64 |             endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'BufferedObservableSet<Content>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:64:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
62 |                 sendChange(change)
63 |             }
64 |             endTransaction()
   |             `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
65 |         }
66 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'BufferedObservableSet<Content>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
[179/186] Compiling GlueKit BufferedSet.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableValueType where Value: ObservableSetType {
10 |     public func unpacked() -> AnyObservableSet<Value.Element> {
   |                               `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 |         return UnpackedObservableSetReference(self).anyObservableSet
12 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 22 |
 23 |     // Required members
 24 |     var value: [Element] { get nonmutating set }
    |         `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 25 |     func apply(_ update: ArrayUpdate<Element>)
 26 |     subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 |     ///
58 |     /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 |     var value: Value { get nonmutating set }
   |         `- note: attempt to override property here
60 |
61 |     func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:10:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableSetType {
10 |     public func buffered() -> AnyObservableSet<Element> {
   |                               `- error: type 'Self.Element' does not conform to protocol 'Hashable'
11 |         if isBuffered {
12 |             return anyObservableSet
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:18:67: error: type 'Content.Element' does not conform to protocol 'Hashable'
16 | }
17 |
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
   |                                                                   `- error: type 'Content.Element' does not conform to protocol 'Hashable'
19 |     typealias Element = Content.Element
20 |     typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:20:24: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
19 |     typealias Element = Content.Element
20 |     typealias Change = SetChange<Element>
   |                        `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
21 |
22 |     private struct BufferedSink: UniqueOwnedSink {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:27:32: error: type 'Content.Element' does not conform to protocol 'Hashable'
25 |         unowned(unsafe) let owner: Owner
26 |
27 |         func receive(_ update: SetUpdate<Content.Element>) {
   |                                `- error: type 'Content.Element' does not conform to protocol 'Hashable'
28 |             owner.applyUpdate(update)
29 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:22:20: error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
20 |     typealias Change = SetChange<Element>
21 |
22 |     private struct BufferedSink: UniqueOwnedSink {
   |                    `- error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
23 |         typealias Owner = BufferedObservableSet
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:33:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
31 |
32 |     private let _content: Content
33 |     private var _value: Set<Element>
   |                         `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
34 |     private var _pendingChange: Change? = nil
35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:47:32: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
45 |     }
46 |
47 |     func applyUpdate(_ update: SetUpdate<Element>) {
   |                                `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
48 |         switch update {
49 |         case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
74 |     }
75 |
76 |     override var value: Set<Element> {
   |                         `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
77 |         return _value
78 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:18: error: property does not override any property from its superclass
74 |     }
75 |
76 |     override var value: Set<Element> {
   |                  `- error: property does not override any property from its superclass
77 |         return _value
78 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:80:19: error: method does not override any method from its superclass
78 |     }
79 |
80 |     override func contains(_ member: Element) -> Bool {
   |                   `- error: method does not override any method from its superclass
81 |         return _value.contains(member)
82 |     }
/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/BufferedSet.swift:84:38: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
82 |     }
83 |
84 |     override func isSubset(of other: Set<Element>) -> Bool {
   |                                      `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
85 |         return _value.isSubset(of: other)
86 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:84:19: error: method does not override any method from its superclass
82 |     }
83 |
84 |     override func isSubset(of other: Set<Element>) -> Bool {
   |                   `- error: method does not override any method from its superclass
85 |         return _value.isSubset(of: other)
86 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:40: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
86 |     }
87 |
88 |     override func isSuperset(of other: Set<Element>) -> Bool {
   |                                        `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
89 |         return _value.isSuperset(of: other)
90 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:19: error: method does not override any method from its superclass
86 |     }
87 |
88 |     override func isSuperset(of other: Set<Element>) -> Bool {
   |                   `- error: method does not override any method from its superclass
89 |         return _value.isSuperset(of: other)
90 |     }
/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/BufferedSet.swift:40:18: error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
38 |         _value = content.value
39 |         super.init()
40 |         _content.add(BufferedSink(owner: self))
   |                  `- error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
41 |     }
42 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
14 |     var value: Value { get }
15 |
16 |     func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 |     @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:44:18: error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
42 |
43 |     deinit {
44 |         _content.remove(BufferedSink(owner: self))
   |                  `- error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
45 |     }
46 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 |     @discardableResult
19 |     func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:50:13: error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
48 |         switch update {
49 |         case .beginTransaction:
50 |             beginTransaction()
   |             `- error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
51 |         case .change(let change):
52 |             if _pendingChange != nil {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'BufferedObservableSet<Content>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:61:34: error: 'nil' requires a contextual type
59 |             if let change = _pendingChange {
60 |                 _value.apply(change)
61 |                 _pendingChange = nil
   |                                  `- error: 'nil' requires a contextual type
62 |                 sendChange(change)
63 |             }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:62:17: error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
60 |                 _value.apply(change)
61 |                 _pendingChange = nil
62 |                 sendChange(change)
   |                 `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
63 |             }
64 |             endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'BufferedObservableSet<Content>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:64:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
62 |                 sendChange(change)
63 |             }
64 |             endTransaction()
   |             `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
65 |         }
66 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'BufferedObservableSet<Content>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
[180/186] Compiling GlueKit BufferedSource.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableValueType where Value: ObservableSetType {
10 |     public func unpacked() -> AnyObservableSet<Value.Element> {
   |                               `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 |         return UnpackedObservableSetReference(self).anyObservableSet
12 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 22 |
 23 |     // Required members
 24 |     var value: [Element] { get nonmutating set }
    |         `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 25 |     func apply(_ update: ArrayUpdate<Element>)
 26 |     subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 |     ///
58 |     /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 |     var value: Value { get nonmutating set }
   |         `- note: attempt to override property here
60 |
61 |     func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:10:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableSetType {
10 |     public func buffered() -> AnyObservableSet<Element> {
   |                               `- error: type 'Self.Element' does not conform to protocol 'Hashable'
11 |         if isBuffered {
12 |             return anyObservableSet
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:18:67: error: type 'Content.Element' does not conform to protocol 'Hashable'
16 | }
17 |
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
   |                                                                   `- error: type 'Content.Element' does not conform to protocol 'Hashable'
19 |     typealias Element = Content.Element
20 |     typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:20:24: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
19 |     typealias Element = Content.Element
20 |     typealias Change = SetChange<Element>
   |                        `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
21 |
22 |     private struct BufferedSink: UniqueOwnedSink {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:27:32: error: type 'Content.Element' does not conform to protocol 'Hashable'
25 |         unowned(unsafe) let owner: Owner
26 |
27 |         func receive(_ update: SetUpdate<Content.Element>) {
   |                                `- error: type 'Content.Element' does not conform to protocol 'Hashable'
28 |             owner.applyUpdate(update)
29 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:22:20: error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
20 |     typealias Change = SetChange<Element>
21 |
22 |     private struct BufferedSink: UniqueOwnedSink {
   |                    `- error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
23 |         typealias Owner = BufferedObservableSet
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:33:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
31 |
32 |     private let _content: Content
33 |     private var _value: Set<Element>
   |                         `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
34 |     private var _pendingChange: Change? = nil
35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:47:32: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
45 |     }
46 |
47 |     func applyUpdate(_ update: SetUpdate<Element>) {
   |                                `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
48 |         switch update {
49 |         case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
74 |     }
75 |
76 |     override var value: Set<Element> {
   |                         `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
77 |         return _value
78 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:18: error: property does not override any property from its superclass
74 |     }
75 |
76 |     override var value: Set<Element> {
   |                  `- error: property does not override any property from its superclass
77 |         return _value
78 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:80:19: error: method does not override any method from its superclass
78 |     }
79 |
80 |     override func contains(_ member: Element) -> Bool {
   |                   `- error: method does not override any method from its superclass
81 |         return _value.contains(member)
82 |     }
/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/BufferedSet.swift:84:38: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
82 |     }
83 |
84 |     override func isSubset(of other: Set<Element>) -> Bool {
   |                                      `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
85 |         return _value.isSubset(of: other)
86 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:84:19: error: method does not override any method from its superclass
82 |     }
83 |
84 |     override func isSubset(of other: Set<Element>) -> Bool {
   |                   `- error: method does not override any method from its superclass
85 |         return _value.isSubset(of: other)
86 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:40: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
86 |     }
87 |
88 |     override func isSuperset(of other: Set<Element>) -> Bool {
   |                                        `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
89 |         return _value.isSuperset(of: other)
90 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:19: error: method does not override any method from its superclass
86 |     }
87 |
88 |     override func isSuperset(of other: Set<Element>) -> Bool {
   |                   `- error: method does not override any method from its superclass
89 |         return _value.isSuperset(of: other)
90 |     }
/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/BufferedSet.swift:40:18: error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
38 |         _value = content.value
39 |         super.init()
40 |         _content.add(BufferedSink(owner: self))
   |                  `- error: instance method 'add' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
41 |     }
42 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
14 |     var value: Value { get }
15 |
16 |     func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 |     @discardableResult
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:44:18: error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
42 |
43 |     deinit {
44 |         _content.remove(BufferedSink(owner: self))
   |                  `- error: instance method 'remove' requires the types 'BufferedObservableSet<Content>.BufferedSink.Value' and 'Update<Content.Change>' be equivalent
45 |     }
46 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
17 |
18 |     @discardableResult
19 |     func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'BufferedObservableSet<Content>.BufferedSink.Value', 'Update<Self.Change>' = 'Update<Content.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:50:13: error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
48 |         switch update {
49 |         case .beginTransaction:
50 |             beginTransaction()
   |             `- error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
51 |         case .change(let change):
52 |             if _pendingChange != nil {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'BufferedObservableSet<Content>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:61:34: error: 'nil' requires a contextual type
59 |             if let change = _pendingChange {
60 |                 _value.apply(change)
61 |                 _pendingChange = nil
   |                                  `- error: 'nil' requires a contextual type
62 |                 sendChange(change)
63 |             }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:62:17: error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
60 |                 _value.apply(change)
61 |                 _pendingChange = nil
62 |                 sendChange(change)
   |                 `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
63 |             }
64 |             endTransaction()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'BufferedObservableSet<Content>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:64:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
62 |                 sendChange(change)
63 |             }
64 |             endTransaction()
   |             `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'BufferedObservableSet<Content>' conform to 'TransactionalThing'
65 |         }
66 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'BufferedObservableSet<Content>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'BufferedObservableSet<Content>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
error: emit-module command failed with exit code 1 (use -v to see invocation)
[181/186] Emitting module GlueKit
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:10:31: error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableValueType where Value: ObservableSetType {
10 |     public func unpacked() -> AnyObservableSet<Value.Element> {
   |                               `- error: type 'Self.Value.Element' does not conform to protocol 'Hashable'
11 |         return UnpackedObservableSetReference(self).anyObservableSet
12 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableArray.swift:24:9: error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 22 |
 23 |     // Required members
 24 |     var value: [Element] { get nonmutating set }
    |         `- error: cannot override mutable property 'value' of type 'Self.Value' with covariant type '[Self.Element]'
 25 |     func apply(_ update: ArrayUpdate<Element>)
 26 |     subscript(index: Int) -> Element { get nonmutating set }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ObservableType.swift:59:9: note: attempt to override property here
57 |     ///
58 |     /// The setter is nonmutating because the value ultimately needs to be stored in a reference type anyway.
59 |     var value: Value { get nonmutating set }
   |         `- note: attempt to override property here
60 |
61 |     func apply(_ update: Update<Change>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:10:31: error: type 'Self.Element' does not conform to protocol 'Hashable'
 8 |
 9 | extension ObservableSetType {
10 |     public func buffered() -> AnyObservableSet<Element> {
   |                               `- error: type 'Self.Element' does not conform to protocol 'Hashable'
11 |         if isBuffered {
12 |             return anyObservableSet
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:18:67: error: type 'Content.Element' does not conform to protocol 'Hashable'
16 | }
17 |
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
   |                                                                   `- error: type 'Content.Element' does not conform to protocol 'Hashable'
19 |     typealias Element = Content.Element
20 |     typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:20:24: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
18 | internal class BufferedObservableSet<Content: ObservableSetType>: _BaseObservableSet<Content.Element> {
19 |     typealias Element = Content.Element
20 |     typealias Change = SetChange<Element>
   |                        `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
21 |
22 |     private struct BufferedSink: UniqueOwnedSink {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:27:32: error: type 'Content.Element' does not conform to protocol 'Hashable'
25 |         unowned(unsafe) let owner: Owner
26 |
27 |         func receive(_ update: SetUpdate<Content.Element>) {
   |                                `- error: type 'Content.Element' does not conform to protocol 'Hashable'
28 |             owner.applyUpdate(update)
29 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:22:20: error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
20 |     typealias Change = SetChange<Element>
21 |
22 |     private struct BufferedSink: UniqueOwnedSink {
   |                    `- error: type 'BufferedObservableSet<Content>.BufferedSink' does not conform to protocol 'SinkType'
23 |         typealias Owner = BufferedObservableSet
24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:33:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
31 |
32 |     private let _content: Content
33 |     private var _value: Set<Element>
   |                         `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
34 |     private var _pendingChange: Change? = nil
35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:47:32: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
45 |     }
46 |
47 |     func applyUpdate(_ update: SetUpdate<Element>) {
   |                                `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
48 |         switch update {
49 |         case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:25: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
74 |     }
75 |
76 |     override var value: Set<Element> {
   |                         `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
77 |         return _value
78 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:76:18: error: property does not override any property from its superclass
74 |     }
75 |
76 |     override var value: Set<Element> {
   |                  `- error: property does not override any property from its superclass
77 |         return _value
78 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:80:19: error: method does not override any method from its superclass
78 |     }
79 |
80 |     override func contains(_ member: Element) -> Bool {
   |                   `- error: method does not override any method from its superclass
81 |         return _value.contains(member)
82 |     }
/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/BufferedSet.swift:84:38: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
82 |     }
83 |
84 |     override func isSubset(of other: Set<Element>) -> Bool {
   |                                      `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
85 |         return _value.isSubset(of: other)
86 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:84:19: error: method does not override any method from its superclass
82 |     }
83 |
84 |     override func isSubset(of other: Set<Element>) -> Bool {
   |                   `- error: method does not override any method from its superclass
85 |         return _value.isSubset(of: other)
86 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:40: error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
86 |     }
87 |
88 |     override func isSuperset(of other: Set<Element>) -> Bool {
   |                                        `- error: type 'BufferedObservableSet<Content>.Element' (aka 'Content.Element') does not conform to protocol 'Hashable'
89 |         return _value.isSuperset(of: other)
90 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/BufferedSet.swift:88:19: error: method does not override any method from its superclass
86 |     }
87 |
88 |     override func isSuperset(of other: Set<Element>) -> Bool {
   |                   `- error: method does not override any method from its superclass
89 |         return _value.isSuperset(of: other)
90 |     }
/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: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: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:170:18: error: property does not override any property from its superclass
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: property does not override any property from its superclass
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:172:19: error: method does not override any method from its superclass
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: method does not override any method from its superclass
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:173:19: error: method does not override any method from its superclass
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: method does not override any method from its superclass
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:185:18: error: property does not override any property from its superclass
183 |
184 |     override var observableCount: AnyObservableValue<Int> { return contents.observableCount }
185 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
    |                  `- error: property does not override any property from its superclass
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/SetFilteringOnPredicate.swift:10:70: error: type 'Self.Element' does not conform to protocol 'Hashable'
  8 |
  9 | extension ObservableSetType {
 10 |     public func filter(_ isIncluded: @escaping (Element) -> Bool) -> AnyObservableSet<Element> {
    |                                                                      `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 11 |         return SetFilteringOnPredicate<Self>(parent: self, test: isIncluded).anyObservableSet
 12 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnObservableBool.swift:17:100: error: type 'Parent.Element' does not conform to protocol 'Hashable'
 15 | }
 16 |
 17 | private class SetFilteringOnObservableBool<Parent: ObservableSetType, Field: ObservableValueType>: _BaseObservableSet<Parent.Element>
    |                                                                                                    `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
 18 | where Field.Value == Bool {
 19 |     typealias Element = Parent.Element
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnObservableBool.swift:20:24: error: type 'SetFilteringOnObservableBool<Parent, Field>.Element' (aka 'Parent.Element') does not conform to protocol 'Hashable'
 18 | where Field.Value == Bool {
 19 |     typealias Element = Parent.Element
 20 |     typealias Change = SetChange<Element>
    |                        `- error: type 'SetFilteringOnObservableBool<Parent, Field>.Element' (aka 'Parent.Element') does not conform to protocol 'Hashable'
 21 |
 22 |     private struct ParentSink: UniqueOwnedSink {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnObservableBool.swift:27:32: error: type 'Parent.Element' does not conform to protocol 'Hashable'
 25 |         unowned(unsafe) let owner: Owner
 26 |
 27 |         func receive(_ update: SetUpdate<Parent.Element>) {
    |                                `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
 28 |             owner.applyParentUpdate(update)
 29 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnObservableBool.swift:22:20: error: type 'SetFilteringOnObservableBool<Parent, Field>.ParentSink' does not conform to protocol 'SinkType'
 20 |     typealias Change = SetChange<Element>
 21 |
 22 |     private struct ParentSink: UniqueOwnedSink {
    |                    `- error: type 'SetFilteringOnObservableBool<Parent, Field>.ParentSink' does not conform to protocol 'SinkType'
 23 |         typealias Owner = SetFilteringOnObservableBool
 24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnObservableBool.swift:55:35: error: type 'SetFilteringOnObservableBool<Parent, Field>.Element' (aka 'Parent.Element') does not conform to protocol 'Hashable'
 53 |     private let isIncluded: (Element) -> Field
 54 |
 55 |     private var matchingElements: Set<Element> = []
    |                                   `- error: type 'SetFilteringOnObservableBool<Parent, Field>.Element' (aka 'Parent.Element') does not conform to protocol 'Hashable'
 56 |     private var fieldSinks: Dictionary<FieldSink, Field> = [:]
 57 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnObservableBool.swift:76:25: error: type 'SetFilteringOnObservableBool<Parent, Field>.Element' (aka 'Parent.Element') does not conform to protocol 'Hashable'
 74 |     }
 75 |
 76 |     override var value: Set<Element> {
    |                         `- error: type 'SetFilteringOnObservableBool<Parent, Field>.Element' (aka 'Parent.Element') does not conform to protocol 'Hashable'
 77 |         if isConnected { return matchingElements }
 78 |         return Set(self.parent.value.filter { isIncluded($0).value })
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnObservableBool.swift:76:18: error: property does not override any property from its superclass
 74 |     }
 75 |
 76 |     override var value: Set<Element> {
    |                  `- error: property does not override any property from its superclass
 77 |         if isConnected { return matchingElements }
 78 |         return Set(self.parent.value.filter { isIncluded($0).value })
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnObservableBool.swift:81:19: error: method does not override any method from its superclass
 79 |     }
 80 |
 81 |     override func contains(_ member: Element) -> Bool {
    |                   `- error: method does not override any method from its superclass
 82 |         if isConnected { return matchingElements.contains(member) }
 83 |         return self.parent.contains(member) && isIncluded(member).value
/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/SetFilteringOnObservableBool.swift:86:38: error: type 'SetFilteringOnObservableBool<Parent, Field>.Element' (aka 'Parent.Element') does not conform to protocol 'Hashable'
 84 |     }
 85 |
 86 |     override func isSubset(of other: Set<Element>) -> Bool {
    |                                      `- error: type 'SetFilteringOnObservableBool<Parent, Field>.Element' (aka 'Parent.Element') does not conform to protocol 'Hashable'
 87 |         if isConnected { return matchingElements.isSubset(of: other) }
 88 |         for member in self.parent.value {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnObservableBool.swift:86:19: error: method does not override any method from its superclass
 84 |     }
 85 |
 86 |     override func isSubset(of other: Set<Element>) -> Bool {
    |                   `- error: method does not override any method from its superclass
 87 |         if isConnected { return matchingElements.isSubset(of: other) }
 88 |         for member in self.parent.value {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnObservableBool.swift:95:40: error: type 'SetFilteringOnObservableBool<Parent, Field>.Element' (aka 'Parent.Element') does not conform to protocol 'Hashable'
 93 |     }
 94 |
 95 |     override func isSuperset(of other: Set<Element>) -> Bool {
    |                                        `- error: type 'SetFilteringOnObservableBool<Parent, Field>.Element' (aka 'Parent.Element') does not conform to protocol 'Hashable'
 96 |         if isConnected { return matchingElements.isSuperset(of: other) }
 97 |         for member in other {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnObservableBool.swift:95:19: error: method does not override any method from its superclass
 93 |     }
 94 |
 95 |     override func isSuperset(of other: Set<Element>) -> Bool {
    |                   `- error: method does not override any method from its superclass
 96 |         if isConnected { return matchingElements.isSuperset(of: other) }
 97 |         for member in other {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnObservableBool.swift:125:38: error: type 'Parent.Element' does not conform to protocol 'Hashable'
123 |     }
124 |
125 |     func applyParentUpdate(_ update: SetUpdate<Parent.Element>) {
    |                                      `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
126 |         switch update {
127 |         case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnPredicate.swift:33:73: error: type 'Parent.Element' does not conform to protocol 'Hashable'
 31 | }
 32 |
 33 | private final class SetFilteringOnPredicate<Parent: ObservableSetType>: _BaseObservableSet<Parent.Element> {
    |                                                                         `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
 34 |     public typealias Element = Parent.Element
 35 |     public typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnPredicate.swift:35:31: error: type 'SetFilteringOnPredicate<Parent>.Element' (aka 'Parent.Element') does not conform to protocol 'Hashable'
 33 | private final class SetFilteringOnPredicate<Parent: ObservableSetType>: _BaseObservableSet<Parent.Element> {
 34 |     public typealias Element = Parent.Element
 35 |     public typealias Change = SetChange<Element>
    |                               `- error: type 'SetFilteringOnPredicate<Parent>.Element' (aka 'Parent.Element') does not conform to protocol 'Hashable'
 36 |
 37 |     private struct FilteringSink: UniqueOwnedSink {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnPredicate.swift:42:32: error: type 'Parent.Element' does not conform to protocol 'Hashable'
 40 |         unowned let owner: Owner
 41 |
 42 |         func receive(_ update: SetUpdate<Parent.Element>) {
    |                                `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
 43 |             owner.applyParentUpdate(update)
 44 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnPredicate.swift:37:20: error: type 'SetFilteringOnPredicate<Parent>.FilteringSink' does not conform to protocol 'SinkType'
 35 |     public typealias Change = SetChange<Element>
 36 |
 37 |     private struct FilteringSink: UniqueOwnedSink {
    |                    `- error: type 'SetFilteringOnPredicate<Parent>.FilteringSink' does not conform to protocol 'SinkType'
 38 |         typealias Owner = SetFilteringOnPredicate
 39 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnPredicate.swift:50:35: error: type 'SetFilteringOnPredicate<Parent>.Element' (aka 'Parent.Element') does not conform to protocol 'Hashable'
 48 |     private let test: (Element) -> Bool
 49 |
 50 |     private var matchingElements: Set<Element> = []
    |                                   `- error: type 'SetFilteringOnPredicate<Parent>.Element' (aka 'Parent.Element') does not conform to protocol 'Hashable'
 51 |
 52 |     init(parent: Parent, test: @escaping (Element) -> Bool) {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnPredicate.swift:64:25: error: type 'SetFilteringOnPredicate<Parent>.Element' (aka 'Parent.Element') does not conform to protocol 'Hashable'
 62 |         return parent.value.reduce(0) { test($1) ? $0 + 1 : $0 }
 63 |     }
 64 |     override var value: Set<Element> {
    |                         `- error: type 'SetFilteringOnPredicate<Parent>.Element' (aka 'Parent.Element') does not conform to protocol 'Hashable'
 65 |         if isConnected { return matchingElements }
 66 |         return Set(self.parent.value.filter(test))
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnPredicate.swift:64:18: error: property does not override any property from its superclass
 62 |         return parent.value.reduce(0) { test($1) ? $0 + 1 : $0 }
 63 |     }
 64 |     override var value: Set<Element> {
    |                  `- error: property does not override any property from its superclass
 65 |         if isConnected { return matchingElements }
 66 |         return Set(self.parent.value.filter(test))
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnPredicate.swift:68:19: error: method does not override any method from its superclass
 66 |         return Set(self.parent.value.filter(test))
 67 |     }
 68 |     override func contains(_ member: Element) -> Bool {
    |                   `- error: method does not override any method from its superclass
 69 |         if isConnected { return matchingElements.contains(member) }
 70 |         return self.parent.contains(member) && test(member)
/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/SetFilteringOnPredicate.swift:72:38: error: type 'SetFilteringOnPredicate<Parent>.Element' (aka 'Parent.Element') does not conform to protocol 'Hashable'
 70 |         return self.parent.contains(member) && test(member)
 71 |     }
 72 |     override func isSubset(of other: Set<Element>) -> Bool {
    |                                      `- error: type 'SetFilteringOnPredicate<Parent>.Element' (aka 'Parent.Element') does not conform to protocol 'Hashable'
 73 |         if isConnected { return matchingElements.isSubset(of: other) }
 74 |         for member in self.parent.value {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnPredicate.swift:72:19: error: method does not override any method from its superclass
 70 |         return self.parent.contains(member) && test(member)
 71 |     }
 72 |     override func isSubset(of other: Set<Element>) -> Bool {
    |                   `- error: method does not override any method from its superclass
 73 |         if isConnected { return matchingElements.isSubset(of: other) }
 74 |         for member in self.parent.value {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnPredicate.swift:80:40: error: type 'SetFilteringOnPredicate<Parent>.Element' (aka 'Parent.Element') does not conform to protocol 'Hashable'
 78 |         return true
 79 |     }
 80 |     override func isSuperset(of other: Set<Element>) -> Bool {
    |                                        `- error: type 'SetFilteringOnPredicate<Parent>.Element' (aka 'Parent.Element') does not conform to protocol 'Hashable'
 81 |         if isConnected { return matchingElements.isSuperset(of: other) }
 82 |         for member in other {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnPredicate.swift:80:19: error: method does not override any method from its superclass
 78 |         return true
 79 |     }
 80 |     override func isSuperset(of other: Set<Element>) -> Bool {
    |                   `- error: method does not override any method from its superclass
 81 |         if isConnected { return matchingElements.isSuperset(of: other) }
 82 |         for member in other {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFilteringOnPredicate.swift:102:38: error: type 'Parent.Element' does not conform to protocol 'Hashable'
100 |     }
101 |
102 |     func applyParentUpdate(_ update: SetUpdate<Parent.Element>) {
    |                                      `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
103 |         switch update {
104 |         case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFolding.swift:39:32: error: type 'Parent.Element' does not conform to protocol 'Hashable'
37 |         unowned(unsafe) let owner: Owner
38 |
39 |         func receive(_ update: SetUpdate<Parent.Element>) {
   |                                `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
40 |             owner.applyUpdate(update)
41 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetFolding.swift:70:32: error: type 'Parent.Element' does not conform to protocol 'Hashable'
68 |     }
69 |
70 |     func applyUpdate(_ update: SetUpdate<Parent.Element>) {
   |                                `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
71 |         switch update {
72 |         case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetGatheringSource.swift:24:31: error: type 'Origin.Element' does not conform to protocol 'Hashable'
22 |         unowned let owner: Owner
23 |
24 |         func receive(_ value: SetUpdate<Origin.Element>) {
   |                               `- error: type 'Origin.Element' does not conform to protocol 'Hashable'
25 |             guard case let .change(change) = value else { return }
26 |             change.removed.forEach { source in
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForArrayField.swift:22:32: error: type 'Parent.Element' does not conform to protocol 'Hashable'
 20 |         unowned(unsafe) let owner: Owner
 21 |
 22 |         func receive(_ update: SetUpdate<Parent.Element>) {
    |                                `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
 23 |             owner.applyParentUpdate(update)
 24 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForArrayField.swift:17:20: error: type 'SetMappingForArrayField<Parent, Field>.ParentSink' does not conform to protocol 'SinkType'
 15 | class SetMappingForArrayField<Parent: ObservableSetType, Field: ObservableArrayType>: SetMappingBase<Field.Element>
 16 | where Field.Element: Hashable {
 17 |     private struct ParentSink: UniqueOwnedSink {
    |                    `- error: type 'SetMappingForArrayField<Parent, Field>.ParentSink' does not conform to protocol 'SinkType'
 18 |         typealias Owner = SetMappingForArrayField
 19 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForArrayField.swift:63:38: error: type 'Parent.Element' does not conform to protocol 'Hashable'
 61 |     }
 62 |
 63 |     func applyParentUpdate(_ update: SetUpdate<Parent.Element>) {
    |                                      `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
 64 |         switch update {
 65 |         case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForSequence.swift:24:32: error: type 'Parent.Element' does not conform to protocol 'Hashable'
22 |         unowned(unsafe) let owner: Owner
23 |
24 |         func receive(_ update: SetUpdate<Parent.Element>) {
   |                                `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
25 |             owner.apply(update)
26 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForSequence.swift:19:20: error: type 'SetMappingForSequence<Parent, Result>.ParentSink' does not conform to protocol 'SinkType'
17 |     typealias Element = Result.Iterator.Element
18 |
19 |     private struct ParentSink: UniqueOwnedSink {
   |                    `- error: type 'SetMappingForSequence<Parent, Result>.ParentSink' does not conform to protocol 'SinkType'
20 |         typealias Owner = SetMappingForSequence
21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForSequence.swift:48:26: error: type 'Parent.Element' does not conform to protocol 'Hashable'
46 |     }
47 |
48 |     func apply(_ update: SetUpdate<Parent.Element>) {
   |                          `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
49 |         switch update {
50 |         case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForSetField.swift:15:83: error: type 'Field.Element' does not conform to protocol 'Hashable'
 13 | }
 14 |
 15 | class SetMappingForSetField<Parent: ObservableSetType, Field: ObservableSetType>: SetMappingBase<Field.Element> {
    |                                                                                   `- error: type 'Field.Element' does not conform to protocol 'Hashable'
 16 |     private struct ParentSink: UniqueOwnedSink {
 17 |         typealias Owner = SetMappingForSetField
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForSetField.swift:21:32: error: type 'Parent.Element' does not conform to protocol 'Hashable'
 19 |         unowned(unsafe) let owner: Owner
 20 |
 21 |         func receive(_ update: SetUpdate<Parent.Element>) {
    |                                `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
 22 |             owner.applyParentUpdate(update)
 23 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForSetField.swift:16:20: error: type 'SetMappingForSetField<Parent, Field>.ParentSink' does not conform to protocol 'SinkType'
 14 |
 15 | class SetMappingForSetField<Parent: ObservableSetType, Field: ObservableSetType>: SetMappingBase<Field.Element> {
 16 |     private struct ParentSink: UniqueOwnedSink {
    |                    `- error: type 'SetMappingForSetField<Parent, Field>.ParentSink' does not conform to protocol 'SinkType'
 17 |         typealias Owner = SetMappingForSetField
 18 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForSetField.swift:31:32: error: type 'Field.Element' does not conform to protocol 'Hashable'
 29 |         unowned(unsafe) let owner: Owner
 30 |
 31 |         func receive(_ update: SetUpdate<Field.Element>) {
    |                                `- error: type 'Field.Element' does not conform to protocol 'Hashable'
 32 |             owner.applyFieldUpdate(update)
 33 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForSetField.swift:26:20: error: type 'SetMappingForSetField<Parent, Field>.FieldSink' does not conform to protocol 'SinkType'
 24 |     }
 25 |
 26 |     private struct FieldSink: UniqueOwnedSink {
    |                    `- error: type 'SetMappingForSetField<Parent, Field>.FieldSink' does not conform to protocol 'SinkType'
 27 |         typealias Owner = SetMappingForSetField
 28 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForSetField.swift:62:38: error: type 'Parent.Element' does not conform to protocol 'Hashable'
 60 |     }
 61 |
 62 |     func applyParentUpdate(_ update: SetUpdate<Parent.Element>) {
    |                                      `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
 63 |         switch update {
 64 |         case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForSetField.swift:94:37: error: type 'Field.Element' does not conform to protocol 'Hashable'
 92 |     }
 93 |
 94 |     func applyFieldUpdate(_ update: SetUpdate<Field.Element>) {
    |                                     `- error: type 'Field.Element' does not conform to protocol 'Hashable'
 95 |         switch update {
 96 |         case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForValue.swift:29:32: error: type 'Parent.Element' does not conform to protocol 'Hashable'
 27 |         unowned(unsafe) let owner: Owner
 28 |
 29 |         func receive(_ update: SetUpdate<Parent.Element>) {
    |                                `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
 30 |             owner.apply(update)
 31 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForValue.swift:24:20: error: type 'InjectiveSetMappingForValue<Parent, Element>.InjectiveSink' does not conform to protocol 'SinkType'
 22 |     typealias Change = SetChange<Element>
 23 |
 24 |     private struct InjectiveSink: UniqueOwnedSink {
    |                    `- error: type 'InjectiveSetMappingForValue<Parent, Element>.InjectiveSink' does not conform to protocol 'SinkType'
 25 |         typealias Owner = InjectiveSetMappingForValue
 26 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForValue.swift:52:26: error: type 'Parent.Element' does not conform to protocol 'Hashable'
 50 |     }
 51 |
 52 |     func apply(_ update: SetUpdate<Parent.Element>) {
    |                          `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
 53 |         switch update {
 54 |         case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForValue.swift:98:32: error: type 'Parent.Element' does not conform to protocol 'Hashable'
 96 |         unowned(unsafe) let owner: Owner
 97 |
 98 |         func receive(_ update: SetUpdate<Parent.Element>) {
    |                                `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
 99 |             owner.apply(update)
100 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForValue.swift:93:20: error: type 'SetMappingForValue<Parent, Element>.MapSink' does not conform to protocol 'SinkType'
 91 |     typealias Change = SetChange<Element>
 92 |
 93 |     private struct MapSink: UniqueOwnedSink {
    |                    `- error: type 'SetMappingForValue<Parent, Element>.MapSink' does not conform to protocol 'SinkType'
 94 |         typealias Owner = SetMappingForValue
 95 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForValue.swift:122:26: error: type 'Parent.Element' does not conform to protocol 'Hashable'
120 |     }
121 |
122 |     func apply(_ update: SetUpdate<Parent.Element>) {
    |                          `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
123 |         switch update {
124 |         case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForValueField.swift:27:32: error: type 'Parent.Element' does not conform to protocol 'Hashable'
 25 |         unowned(unsafe) let owner: Owner
 26 |
 27 |         func receive(_ update: SetUpdate<Parent.Element>) {
    |                                `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
 28 |             owner.applyParentUpdate(update)
 29 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForValueField.swift:22:20: error: type 'SetMappingForValueField<Parent, Field>.ParentSink' does not conform to protocol 'SinkType'
 20 | where Field.Value: Hashable {
 21 |
 22 |     private struct ParentSink: UniqueOwnedSink {
    |                    `- error: type 'SetMappingForValueField<Parent, Field>.ParentSink' does not conform to protocol 'SinkType'
 23 |         typealias Owner = SetMappingForValueField
 24 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetMappingForValueField.swift:66:38: error: type 'Parent.Element' does not conform to protocol 'Hashable'
 64 |     }
 65 |
 66 |     func applyParentUpdate(_ update: SetUpdate<Parent.Element>) {
    |                                      `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
 67 |         switch update {
 68 |         case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:17:85: error: type 'Reference.Value.Element' does not conform to protocol 'Hashable'
15 | /// A mutable reference to an `AnyObservableSet` that's also an observable set.
16 | /// You can switch to another target set without having to re-register subscribers.
17 | private final class UnpackedObservableSetReference<Reference: ObservableValueType>: _BaseObservableSet<Reference.Value.Element>
   |                                                                                     `- error: type 'Reference.Value.Element' does not conform to protocol 'Hashable'
18 | where Reference.Value: ObservableSetType {
19 |     typealias Target = Reference.Value
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:21:24: error: type 'UnpackedObservableSetReference<Reference>.Element' (aka 'Reference.Value.Element') does not conform to protocol 'Hashable'
19 |     typealias Target = Reference.Value
20 |     typealias Element = Target.Element
21 |     typealias Change = SetChange<Element>
   |                        `- error: type 'UnpackedObservableSetReference<Reference>.Element' (aka 'Reference.Value.Element') does not conform to protocol 'Hashable'
22 |
23 |     private struct ReferenceSink: UniqueOwnedSink {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:38:32: error: type 'Reference.Value.Element' does not conform to protocol 'Hashable'
36 |         unowned(unsafe) let owner: Owner
37 |
38 |         func receive(_ update: SetUpdate<Reference.Value.Element>) {
   |                                `- error: type 'Reference.Value.Element' does not conform to protocol 'Hashable'
39 |             owner.applyTargetUpdate(update)
40 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:33:20: error: type 'UnpackedObservableSetReference<Reference>.TargetSink' does not conform to protocol 'SinkType'
31 |     }
32 |
33 |     private struct TargetSink: UniqueOwnedSink {
   |                    `- error: type 'UnpackedObservableSetReference<Reference>.TargetSink' does not conform to protocol 'SinkType'
34 |         typealias Owner = UnpackedObservableSetReference
35 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:79:38: error: type 'UnpackedObservableSetReference<Reference>.Element' (aka 'Reference.Value.Element') does not conform to protocol 'Hashable'
77 |     }
78 |
79 |     func applyTargetUpdate(_ update: SetUpdate<Element>) {
   |                                      `- error: type 'UnpackedObservableSetReference<Reference>.Element' (aka 'Reference.Value.Element') does not conform to protocol 'Hashable'
80 |         switch update {
81 |         case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:92:25: error: type 'UnpackedObservableSetReference<Reference>.Element' (aka 'Reference.Value.Element') does not conform to protocol 'Hashable'
90 |     override var isBuffered: Bool { return false }
91 |     override var count: Int { return _reference.value.count }
92 |     override var value: Set<Element> { return _reference.value.value }
   |                         `- error: type 'UnpackedObservableSetReference<Reference>.Element' (aka 'Reference.Value.Element') does not conform to protocol 'Hashable'
93 |     override func contains(_ member: Element) -> Bool { return _reference.value.contains(member) }
94 |     override func isSubset(of other: Set<Element>) -> Bool { return _reference.value.isSubset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:92:18: error: property does not override any property from its superclass
90 |     override var isBuffered: Bool { return false }
91 |     override var count: Int { return _reference.value.count }
92 |     override var value: Set<Element> { return _reference.value.value }
   |                  `- error: property does not override any property from its superclass
93 |     override func contains(_ member: Element) -> Bool { return _reference.value.contains(member) }
94 |     override func isSubset(of other: Set<Element>) -> Bool { return _reference.value.isSubset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:93:19: error: method does not override any method from its superclass
91 |     override var count: Int { return _reference.value.count }
92 |     override var value: Set<Element> { return _reference.value.value }
93 |     override func contains(_ member: Element) -> Bool { return _reference.value.contains(member) }
   |                   `- error: method does not override any method from its superclass
94 |     override func isSubset(of other: Set<Element>) -> Bool { return _reference.value.isSubset(of: other) }
95 |     override func isSuperset(of other: Set<Element>) -> Bool { return _reference.value.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/SetReference.swift:94:38: error: type 'UnpackedObservableSetReference<Reference>.Element' (aka 'Reference.Value.Element') does not conform to protocol 'Hashable'
92 |     override var value: Set<Element> { return _reference.value.value }
93 |     override func contains(_ member: Element) -> Bool { return _reference.value.contains(member) }
94 |     override func isSubset(of other: Set<Element>) -> Bool { return _reference.value.isSubset(of: other) }
   |                                      `- error: type 'UnpackedObservableSetReference<Reference>.Element' (aka 'Reference.Value.Element') does not conform to protocol 'Hashable'
95 |     override func isSuperset(of other: Set<Element>) -> Bool { return _reference.value.isSuperset(of: other) }
96 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:94:19: error: method does not override any method from its superclass
92 |     override var value: Set<Element> { return _reference.value.value }
93 |     override func contains(_ member: Element) -> Bool { return _reference.value.contains(member) }
94 |     override func isSubset(of other: Set<Element>) -> Bool { return _reference.value.isSubset(of: other) }
   |                   `- error: method does not override any method from its superclass
95 |     override func isSuperset(of other: Set<Element>) -> Bool { return _reference.value.isSuperset(of: other) }
96 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:95:40: error: type 'UnpackedObservableSetReference<Reference>.Element' (aka 'Reference.Value.Element') does not conform to protocol 'Hashable'
93 |     override func contains(_ member: Element) -> Bool { return _reference.value.contains(member) }
94 |     override func isSubset(of other: Set<Element>) -> Bool { return _reference.value.isSubset(of: other) }
95 |     override func isSuperset(of other: Set<Element>) -> Bool { return _reference.value.isSuperset(of: other) }
   |                                        `- error: type 'UnpackedObservableSetReference<Reference>.Element' (aka 'Reference.Value.Element') does not conform to protocol 'Hashable'
96 | }
97 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetReference.swift:95:19: error: method does not override any method from its superclass
93 |     override func contains(_ member: Element) -> Bool { return _reference.value.contains(member) }
94 |     override func isSubset(of other: Set<Element>) -> Bool { return _reference.value.isSubset(of: other) }
95 |     override func isSuperset(of other: Set<Element>) -> Bool { return _reference.value.isSuperset(of: other) }
   |                   `- error: method does not override any method from its superclass
96 | }
97 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetSortingByComparableField.swift:30:32: error: type 'Parent.Element' does not conform to protocol 'Hashable'
 28 |         unowned(unsafe) let owner: Owner
 29 |
 30 |         func receive(_ update: SetUpdate<Parent.Element>) {
    |                                `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
 31 |             owner.applyParentUpdate(update)
 32 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetSortingByComparableField.swift:25:20: error: type 'SetSortingByComparableField<Parent, Field>.ParentSink' does not conform to protocol 'SinkType'
 23 |     typealias Change = ArrayChange<Element>
 24 |
 25 |     private struct ParentSink: UniqueOwnedSink {
    |                    `- error: type 'SetSortingByComparableField<Parent, Field>.ParentSink' does not conform to protocol 'SinkType'
 26 |         typealias Owner = SetSortingByComparableField
 27 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetSortingByComparableField.swift:115:38: error: type 'Parent.Element' does not conform to protocol 'Hashable'
113 |     }
114 |
115 |     func applyParentUpdate(_ update: SetUpdate<Parent.Element>) {
    |                                      `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
116 |         switch update {
117 |         case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetSortingByMappingToComparable.swift:34:32: error: type 'Parent.Element' does not conform to protocol 'Hashable'
 32 |         unowned(unsafe) let owner: Owner
 33 |
 34 |         func receive(_ update: SetUpdate<Parent.Element>) {
    |                                `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
 35 |             owner.applyParentUpdate(update)
 36 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetSortingByMappingToComparable.swift:29:20: error: type 'SetSortingByMappingToComparable<Parent, Element>.SortingSink' does not conform to protocol 'SinkType'
 27 |     typealias Change = ArrayChange<Element>
 28 |
 29 |     private struct SortingSink: UniqueOwnedSink {
    |                    `- error: type 'SetSortingByMappingToComparable<Parent, Element>.SortingSink' does not conform to protocol 'SinkType'
 30 |         typealias Owner = SetSortingByMappingToComparable
 31 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetSortingByMappingToComparable.swift:60:38: error: type 'Parent.Element' does not conform to protocol 'Hashable'
 58 |     }
 59 |
 60 |     func applyParentUpdate(_ update: SetUpdate<Parent.Element>) {
    |                                      `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
 61 |         switch update {
 62 |         case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetSortingByMappingToObservableComparable.swift:30:32: error: type 'Parent.Element' does not conform to protocol 'Hashable'
 28 |         unowned(unsafe) let owner: Owner
 29 |
 30 |         func receive(_ update: SetUpdate<Parent.Element>) {
    |                                `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
 31 |             owner.applyParentUpdate(update)
 32 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetSortingByMappingToObservableComparable.swift:25:20: error: type 'SetSortingByMappingToObservableComparable<Parent, Field>.ParentSink' does not conform to protocol 'SinkType'
 23 |     typealias Change = ArrayChange<Element>
 24 |
 25 |     private struct ParentSink: UniqueOwnedSink {
    |                    `- error: type 'SetSortingByMappingToObservableComparable<Parent, Field>.ParentSink' does not conform to protocol 'SinkType'
 26 |         typealias Owner = SetSortingByMappingToObservableComparable
 27 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/SetSortingByMappingToObservableComparable.swift:121:38: error: type 'Parent.Element' does not conform to protocol 'Hashable'
119 |     }
120 |
121 |     func applyParentUpdate(_ update: SetUpdate<Parent.Element>) {
    |                                      `- error: type 'Parent.Element' does not conform to protocol 'Hashable'
122 |         switch update {
123 |         case .beginTransaction:
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:11:26: error: type 'Self.Element' does not conform to protocol 'Hashable'
  9 | public protocol UpdatableSetType: ObservableSetType, UpdatableType {
 10 |     var value: Base { get nonmutating set }
 11 |     func apply(_ update: SetUpdate<Element>)
    |                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 12 |
 13 |     // Optional members
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:17:29: error: type 'Self.Element' does not conform to protocol 'Hashable'
 15 |     func insert(_ member: Element)
 16 |     func removeAll()
 17 |     func formUnion(_ other: Set<Element>)
    |                             `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 18 |     func formIntersection(_ other: Set<Element>)
 19 |     func formSymmetricDifference(_ other: Set<Element>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:18:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
 16 |     func removeAll()
 17 |     func formUnion(_ other: Set<Element>)
 18 |     func formIntersection(_ other: Set<Element>)
    |                                    `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 19 |     func formSymmetricDifference(_ other: Set<Element>)
 20 |     func subtract(_ other: Set<Element>)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:19:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
 17 |     func formUnion(_ other: Set<Element>)
 18 |     func formIntersection(_ other: Set<Element>)
 19 |     func formSymmetricDifference(_ other: Set<Element>)
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func subtract(_ other: Set<Element>)
 21 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:20:28: error: type 'Self.Element' does not conform to protocol 'Hashable'
 18 |     func formIntersection(_ other: Set<Element>)
 19 |     func formSymmetricDifference(_ other: Set<Element>)
 20 |     func subtract(_ other: Set<Element>)
    |                            `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 21 |
 22 |     var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { get }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:22:46: error: type 'Self.Element' does not conform to protocol 'Hashable'
 20 |     func subtract(_ other: Set<Element>)
 21 |
 22 |     var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { get }
    |                                              `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 23 |     var anyUpdatableSet: AnyUpdatableSet<Element> { get }
 24 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:23:26: error: type 'Self.Element' does not conform to protocol 'Hashable'
 21 |
 22 |     var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { get }
 23 |     var anyUpdatableSet: AnyUpdatableSet<Element> { get }
    |                          `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 24 | }
 25 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:48:36: error: type 'Self.Element' does not conform to protocol 'Hashable'
 46 |     }
 47 |
 48 |     public func formUnion(_ other: Set<Element>) {
    |                                    `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 49 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 50 |         let difference = other.subtracting(value)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:54:43: error: type 'Self.Element' does not conform to protocol 'Hashable'
 52 |     }
 53 |
 54 |     public func formIntersection(_ other: Set<Element>) {
    |                                           `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 55 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 56 |         let difference = value.subtracting(other)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:60:50: error: type 'Self.Element' does not conform to protocol 'Hashable'
 58 |     }
 59 |
 60 |     public func formSymmetricDifference(_ other: Set<Element>) {
    |                                                  `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 61 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 62 |         let value = self.value
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:68:35: error: type 'Self.Element' does not conform to protocol 'Hashable'
 66 |     }
 67 |
 68 |     public func subtract(_ other: Set<Element>) {
    |                                   `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 69 |         // Note: This should be kept in sync with the same member in _AbstractUpdatableSet.
 70 |         let intersection = value.intersection(other)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:74:45: error: type 'Self.Element' does not conform to protocol 'Hashable'
 72 |     }
 73 |
 74 |     public func apply(_ update: ValueUpdate<Set<Element>>) {
    |                                             `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 75 |         self.apply(update.map { change in SetChange(from: change.old, to: change.new) })
 76 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:78:53: error: type 'Self.Element' does not conform to protocol 'Hashable'
 76 |     }
 77 |
 78 |     public var anyUpdatableValue: AnyUpdatableValue<Set<Element>> {
    |                                                     `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 79 |         return AnyUpdatableValue(
 80 |             getter: { self.value },
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:85:33: error: type 'Self.Element' does not conform to protocol 'Hashable'
 83 |     }
 84 |
 85 |     public var anyUpdatableSet: AnyUpdatableSet<Element> {
    |                                 `- error: type 'Self.Element' does not conform to protocol 'Hashable'
 86 |         return AnyUpdatableSet(box: UpdatableSetBox(self))
 87 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:241:58: error: type 'Contents.Element' does not conform to protocol 'Hashable'
239 | }
240 |
241 | final class UpdatableSetBox<Contents: UpdatableSetType>: _AbstractUpdatableSet<Contents.Element> {
    |                                                          `- error: type 'Contents.Element' does not conform to protocol 'Hashable'
242 |     typealias Element = Contents.Element
243 |     typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:243:24: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
241 | final class UpdatableSetBox<Contents: UpdatableSetType>: _AbstractUpdatableSet<Contents.Element> {
242 |     typealias Element = Contents.Element
243 |     typealias Change = SetChange<Element>
    |                        `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
244 |
245 |     let contents: Contents
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:254:25: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
252 |     override var count: Int { return contents.count }
253 |
254 |     override var value: Set<Element> {
    |                         `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
255 |         get { return contents.value }
256 |         set { contents.value = newValue }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:254:18: error: property does not override any property from its superclass
252 |     override var count: Int { return contents.count }
253 |
254 |     override var value: Set<Element> {
    |                  `- error: property does not override any property from its superclass
255 |         get { return contents.value }
256 |         set { contents.value = newValue }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:259:35: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
257 |     }
258 |
259 |     override func apply(_ update: SetUpdate<Element>) { contents.apply(update) }
    |                                   `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
260 |
261 |     override func remove(_ member: Element) { contents.remove(member) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:259:19: error: method does not override any method from its superclass
257 |     }
258 |
259 |     override func apply(_ update: SetUpdate<Element>) { contents.apply(update) }
    |                   `- error: method does not override any method from its superclass
260 |
261 |     override func remove(_ member: Element) { contents.remove(member) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:261:19: error: method does not override any method from its superclass
142 |     open func apply(_ update: SetUpdate<Element>) { abstract() }
143 |
144 |     open func remove(_ member: Element) {
    |               `- note: potential overridden instance method 'remove' here
145 |         // Note: This should be kept in sync with the same member in the UpdatableSetType extension above.
146 |         if contains(member) {
    :
259 |     override func apply(_ update: SetUpdate<Element>) { contents.apply(update) }
260 |
261 |     override func remove(_ member: Element) { contents.remove(member) }
    |                   `- error: method does not override any method from its superclass
262 |     override func insert(_ member: Element) { contents.insert(member) }
263 |     override func removeAll() { contents.removeAll() }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:262:19: error: method does not override any method from its superclass
149 |     }
150 |
151 |     open func insert(_ member: Element) {
    |               `- note: potential overridden instance method 'insert' here
152 |         // Note: This should be kept in sync with the same member in the UpdatableSetType extension above.
153 |         if !contains(member) {
    :
260 |
261 |     override func remove(_ member: Element) { contents.remove(member) }
262 |     override func insert(_ member: Element) { contents.insert(member) }
    |                   `- error: method does not override any method from its superclass
263 |     override func removeAll() { contents.removeAll() }
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:264:38: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
262 |     override func insert(_ member: Element) { contents.insert(member) }
263 |     override func removeAll() { contents.removeAll() }
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
    |                                      `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:264:19: error: method does not override any method from its superclass
262 |     override func insert(_ member: Element) { contents.insert(member) }
263 |     override func removeAll() { contents.removeAll() }
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
    |                   `- error: method does not override any method from its superclass
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:265:45: error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
263 |     override func removeAll() { contents.removeAll() }
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
    |                                             `- error: type 'UpdatableSetBox<Contents>.Element' (aka 'Contents.Element') does not conform to protocol 'Hashable'
266 |     override func formSymmetricDifference(_ other: Set<Element>) { contents.formSymmetricDifference(other) }
267 |     override func subtract(_ other: Set<Element>) { contents.subtract(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:265:19: error: method does not override any method from its superclass
263 |     override func removeAll() { contents.removeAll() }
264 |     override func formUnion(_ other: Set<Element>) { contents.formUnion(other) }
265 |     override func formIntersection(_ other: Set<Element>) { contents.formIntersection(other) }
    |                   `- error: method does not override any method from its superclass
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:266:19: error: method does not override any method from its superclass
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: method does not override any method from its superclass
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:267:19: error: method does not override any method from its superclass
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: method does not override any method from its superclass
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:270:19: error: method does not override any method from its superclass
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: method does not override any method from its superclass
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:271:19: error: method does not override any method from its superclass
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: method does not override any method from its superclass
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:284:18: error: property does not override any property from its superclass
282 |     override var observableCount: AnyObservableValue<Int> { return contents.observableCount }
283 |
284 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
    |                  `- error: property does not override any property from its superclass
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:285:18: error: property does not override any property from its superclass
283 |
284 |     override var anyObservableValue: AnyObservableValue<Set<Element>> { return contents.anyObservableValue }
285 |     override var anyUpdatableValue: AnyUpdatableValue<Set<Element>> { return contents.anyUpdatableValue }
    |                  `- error: property does not override any property from its superclass
286 | }
287 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:19:121: error: type 'Field.Element' does not conform to protocol 'Hashable'
 17 | }
 18 |
 19 | private final class UpdateSourceForSetField<Parent: ObservableValueType, Field: ObservableSetType>: TransactionalSource<SetChange<Field.Element>> {
    |                                                                                                                         `- error: type 'Field.Element' does not conform to protocol 'Hashable'
 20 |     typealias Element = Field.Element
 21 |     typealias Change = SetChange<Element>
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:21:24: error: type 'UpdateSourceForSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
 19 | private final class UpdateSourceForSetField<Parent: ObservableValueType, Field: ObservableSetType>: TransactionalSource<SetChange<Field.Element>> {
 20 |     typealias Element = Field.Element
 21 |     typealias Change = SetChange<Element>
    |                        `- error: type 'UpdateSourceForSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
 22 |     typealias Value = Update<Change>
 23 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:41:32: error: type 'Field.Element' does not conform to protocol 'Hashable'
 39 |         let identifier = 2
 40 |
 41 |         func receive(_ update: SetUpdate<Field.Element>) {
    |                                `- error: type 'Field.Element' does not conform to protocol 'Hashable'
 42 |             owner.applyFieldUpdate(update)
 43 |         }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:35:20: error: type 'UpdateSourceForSetField<Parent, Field>.FieldSink' does not conform to protocol 'SinkType'
 33 |     }
 34 |
 35 |     private struct FieldSink: OwnedSink {
    |                    `- error: type 'UpdateSourceForSetField<Parent, Field>.FieldSink' does not conform to protocol 'SinkType'
 36 |         typealias Owner = UpdateSourceForSetField
 37 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'; add nested type 'Value' for conformance
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:95:37: error: type 'Field.Element' does not conform to protocol 'Hashable'
 93 |     }
 94 |
 95 |     func applyFieldUpdate(_ update: SetUpdate<Field.Element>) {
    |                                     `- error: type 'Field.Element' does not conform to protocol 'Hashable'
 96 |         send(update)
 97 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:100:101: error: type 'Field.Element' does not conform to protocol 'Hashable'
 98 | }
 99 |
100 | private final class ValueMappingForSetField<Parent: ObservableValueType, Field: ObservableSetType>: _AbstractObservableSet<Field.Element> {
    |                                                                                                     `- error: type 'Field.Element' does not conform to protocol 'Hashable'
101 |     typealias Element = Field.Element
102 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:113:25: error: type 'ValueMappingForSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
111 |     override var isBuffered: Bool { return field.isBuffered }
112 |     override var count: Int { return field.count }
113 |     override var value: Set<Element> { return field.value }
    |                         `- error: type 'ValueMappingForSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
114 |     override func contains(_ member: Element) -> Bool { return field.contains(member) }
115 |     override func isSubset(of other: Set<Element>) -> Bool { return field.isSubset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:113:18: error: property does not override any property from its superclass
111 |     override var isBuffered: Bool { return field.isBuffered }
112 |     override var count: Int { return field.count }
113 |     override var value: Set<Element> { return field.value }
    |                  `- error: property does not override any property from its superclass
114 |     override func contains(_ member: Element) -> Bool { return field.contains(member) }
115 |     override func isSubset(of other: Set<Element>) -> Bool { return field.isSubset(of: other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:114:19: error: method does not override any method from its superclass
112 |     override var count: Int { return field.count }
113 |     override var value: Set<Element> { return field.value }
114 |     override func contains(_ member: Element) -> Bool { return field.contains(member) }
    |                   `- error: method does not override any method from its superclass
115 |     override func isSubset(of other: Set<Element>) -> Bool { return field.isSubset(of: other) }
116 |     override func isSuperset(of other: Set<Element>) -> Bool { return field.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/ValueMappingForSetField.swift:115:38: error: type 'ValueMappingForSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
113 |     override var value: Set<Element> { return field.value }
114 |     override func contains(_ member: Element) -> Bool { return field.contains(member) }
115 |     override func isSubset(of other: Set<Element>) -> Bool { return field.isSubset(of: other) }
    |                                      `- error: type 'ValueMappingForSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
116 |     override func isSuperset(of other: Set<Element>) -> Bool { return field.isSuperset(of: other) }
117 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:115:19: error: method does not override any method from its superclass
113 |     override var value: Set<Element> { return field.value }
114 |     override func contains(_ member: Element) -> Bool { return field.contains(member) }
115 |     override func isSubset(of other: Set<Element>) -> Bool { return field.isSubset(of: other) }
    |                   `- error: method does not override any method from its superclass
116 |     override func isSuperset(of other: Set<Element>) -> Bool { return field.isSuperset(of: other) }
117 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:116:40: error: type 'ValueMappingForSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
114 |     override func contains(_ member: Element) -> Bool { return field.contains(member) }
115 |     override func isSubset(of other: Set<Element>) -> Bool { return field.isSubset(of: other) }
116 |     override func isSuperset(of other: Set<Element>) -> Bool { return field.isSuperset(of: other) }
    |                                        `- error: type 'ValueMappingForSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
117 |
118 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:116:19: error: method does not override any method from its superclass
114 |     override func contains(_ member: Element) -> Bool { return field.contains(member) }
115 |     override func isSubset(of other: Set<Element>) -> Bool { return field.isSubset(of: other) }
116 |     override func isSuperset(of other: Set<Element>) -> Bool { return field.isSuperset(of: other) }
    |                   `- error: method does not override any method from its superclass
117 |
118 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:118:19: error: method does not override any method from its superclass
116 |     override func isSuperset(of other: Set<Element>) -> Bool { return field.isSuperset(of: other) }
117 |
118 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
    |                   `- error: method does not override any method from its superclass
119 |         updateSource.add(sink)
120 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:123:19: error: method does not override any method from its superclass
121 |
122 |     @discardableResult
123 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
    |                   `- error: method does not override any method from its superclass
124 |         return updateSource.remove(sink)
125 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:128:109: error: type 'Field.Element' does not conform to protocol 'Hashable'
126 | }
127 |
128 | private final class ValueMappingForUpdatableSetField<Parent: ObservableValueType, Field: UpdatableSetType>: _AbstractUpdatableSet<Field.Element> {
    |                                                                                                             `- error: type 'Field.Element' does not conform to protocol 'Hashable'
129 |     typealias Element = Field.Element
130 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:141:25: error: type 'ValueMappingForUpdatableSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
139 |     override var isBuffered: Bool { return field.isBuffered }
140 |     override var count: Int { return field.count }
141 |     override var value: Set<Element> {
    |                         `- error: type 'ValueMappingForUpdatableSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
142 |         get { return field.value }
143 |         set { field.value = newValue }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:141:18: error: property does not override any property from its superclass
139 |     override var isBuffered: Bool { return field.isBuffered }
140 |     override var count: Int { return field.count }
141 |     override var value: Set<Element> {
    |                  `- error: property does not override any property from its superclass
142 |         get { return field.value }
143 |         set { field.value = newValue }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:145:19: error: method does not override any method from its superclass
143 |         set { field.value = newValue }
144 |     }
145 |     override func contains(_ member: Element) -> Bool { return field.contains(member) }
    |                   `- error: method does not override any method from its superclass
146 |     override func isSubset(of other: Set<Element>) -> Bool { return field.isSubset(of: other) }
147 |     override func isSuperset(of other: Set<Element>) -> Bool { return field.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/ValueMappingForSetField.swift:146:38: error: type 'ValueMappingForUpdatableSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
144 |     }
145 |     override func contains(_ member: Element) -> Bool { return field.contains(member) }
146 |     override func isSubset(of other: Set<Element>) -> Bool { return field.isSubset(of: other) }
    |                                      `- error: type 'ValueMappingForUpdatableSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
147 |     override func isSuperset(of other: Set<Element>) -> Bool { return field.isSuperset(of: other) }
148 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:146:19: error: method does not override any method from its superclass
144 |     }
145 |     override func contains(_ member: Element) -> Bool { return field.contains(member) }
146 |     override func isSubset(of other: Set<Element>) -> Bool { return field.isSubset(of: other) }
    |                   `- error: method does not override any method from its superclass
147 |     override func isSuperset(of other: Set<Element>) -> Bool { return field.isSuperset(of: other) }
148 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:147:40: error: type 'ValueMappingForUpdatableSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
145 |     override func contains(_ member: Element) -> Bool { return field.contains(member) }
146 |     override func isSubset(of other: Set<Element>) -> Bool { return field.isSubset(of: other) }
147 |     override func isSuperset(of other: Set<Element>) -> Bool { return field.isSuperset(of: other) }
    |                                        `- error: type 'ValueMappingForUpdatableSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
148 |
149 |     override func apply(_ update: SetUpdate<Element>) { field.apply(update) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:147:19: error: method does not override any method from its superclass
145 |     override func contains(_ member: Element) -> Bool { return field.contains(member) }
146 |     override func isSubset(of other: Set<Element>) -> Bool { return field.isSubset(of: other) }
147 |     override func isSuperset(of other: Set<Element>) -> Bool { return field.isSuperset(of: other) }
    |                   `- error: method does not override any method from its superclass
148 |
149 |     override func apply(_ update: SetUpdate<Element>) { field.apply(update) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:149:35: error: type 'ValueMappingForUpdatableSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
147 |     override func isSuperset(of other: Set<Element>) -> Bool { return field.isSuperset(of: other) }
148 |
149 |     override func apply(_ update: SetUpdate<Element>) { field.apply(update) }
    |                                   `- error: type 'ValueMappingForUpdatableSetField<Parent, Field>.Element' (aka 'Field.Element') does not conform to protocol 'Hashable'
150 |
151 |     override func remove(_ member: Element) { field.remove(member) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:149:19: error: method does not override any method from its superclass
147 |     override func isSuperset(of other: Set<Element>) -> Bool { return field.isSuperset(of: other) }
148 |
149 |     override func apply(_ update: SetUpdate<Element>) { field.apply(update) }
    |                   `- error: method does not override any method from its superclass
150 |
151 |     override func remove(_ member: Element) { field.remove(member) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:151:19: error: method does not override any method from its superclass
149 |     override func apply(_ update: SetUpdate<Element>) { field.apply(update) }
150 |
151 |     override func remove(_ member: Element) { field.remove(member) }
    |                   `- error: method does not override any method from its superclass
152 |     override func insert(_ member: Element) { field.insert(member) }
153 |     override func removeAll() { field.removeAll() }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:144:15: note: potential overridden instance method 'remove' here
142 |     open func apply(_ update: SetUpdate<Element>) { abstract() }
143 |
144 |     open func remove(_ member: Element) {
    |               `- note: potential overridden instance method 'remove' here
145 |         // Note: This should be kept in sync with the same member in the UpdatableSetType extension above.
146 |         if contains(member) {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:152:19: error: method does not override any method from its superclass
150 |
151 |     override func remove(_ member: Element) { field.remove(member) }
152 |     override func insert(_ member: Element) { field.insert(member) }
    |                   `- error: method does not override any method from its superclass
153 |     override func removeAll() { field.removeAll() }
154 |     override func formUnion(_ other: Set<Field.Element>) { field.formUnion(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/UpdatableSet.swift:151:15: note: potential overridden instance method 'insert' here
149 |     }
150 |
151 |     open func insert(_ member: Element) {
    |               `- note: potential overridden instance method 'insert' here
152 |         // Note: This should be kept in sync with the same member in the UpdatableSetType extension above.
153 |         if !contains(member) {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:154:38: error: type 'Field.Element' does not conform to protocol 'Hashable'
152 |     override func insert(_ member: Element) { field.insert(member) }
153 |     override func removeAll() { field.removeAll() }
154 |     override func formUnion(_ other: Set<Field.Element>) { field.formUnion(other) }
    |                                      `- error: type 'Field.Element' does not conform to protocol 'Hashable'
155 |     override func formIntersection(_ other: Set<Field.Element>) { field.formIntersection(other) }
156 |     override func formSymmetricDifference(_ other: Set<Field.Element>) { field.formSymmetricDifference(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:154:19: error: method does not override any method from its superclass
152 |     override func insert(_ member: Element) { field.insert(member) }
153 |     override func removeAll() { field.removeAll() }
154 |     override func formUnion(_ other: Set<Field.Element>) { field.formUnion(other) }
    |                   `- error: method does not override any method from its superclass
155 |     override func formIntersection(_ other: Set<Field.Element>) { field.formIntersection(other) }
156 |     override func formSymmetricDifference(_ other: Set<Field.Element>) { field.formSymmetricDifference(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:155:45: error: type 'Field.Element' does not conform to protocol 'Hashable'
153 |     override func removeAll() { field.removeAll() }
154 |     override func formUnion(_ other: Set<Field.Element>) { field.formUnion(other) }
155 |     override func formIntersection(_ other: Set<Field.Element>) { field.formIntersection(other) }
    |                                             `- error: type 'Field.Element' does not conform to protocol 'Hashable'
156 |     override func formSymmetricDifference(_ other: Set<Field.Element>) { field.formSymmetricDifference(other) }
157 |     override func subtract(_ other: Set<Field.Element>) { field.subtract(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:155:19: error: method does not override any method from its superclass
153 |     override func removeAll() { field.removeAll() }
154 |     override func formUnion(_ other: Set<Field.Element>) { field.formUnion(other) }
155 |     override func formIntersection(_ other: Set<Field.Element>) { field.formIntersection(other) }
    |                   `- error: method does not override any method from its superclass
156 |     override func formSymmetricDifference(_ other: Set<Field.Element>) { field.formSymmetricDifference(other) }
157 |     override func subtract(_ other: Set<Field.Element>) { field.subtract(other) }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:156:52: error: type 'Field.Element' does not conform to protocol 'Hashable'
154 |     override func formUnion(_ other: Set<Field.Element>) { field.formUnion(other) }
155 |     override func formIntersection(_ other: Set<Field.Element>) { field.formIntersection(other) }
156 |     override func formSymmetricDifference(_ other: Set<Field.Element>) { field.formSymmetricDifference(other) }
    |                                                    `- error: type 'Field.Element' does not conform to protocol 'Hashable'
157 |     override func subtract(_ other: Set<Field.Element>) { field.subtract(other) }
158 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:156:19: error: method does not override any method from its superclass
154 |     override func formUnion(_ other: Set<Field.Element>) { field.formUnion(other) }
155 |     override func formIntersection(_ other: Set<Field.Element>) { field.formIntersection(other) }
156 |     override func formSymmetricDifference(_ other: Set<Field.Element>) { field.formSymmetricDifference(other) }
    |                   `- error: method does not override any method from its superclass
157 |     override func subtract(_ other: Set<Field.Element>) { field.subtract(other) }
158 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:157:37: error: type 'Field.Element' does not conform to protocol 'Hashable'
155 |     override func formIntersection(_ other: Set<Field.Element>) { field.formIntersection(other) }
156 |     override func formSymmetricDifference(_ other: Set<Field.Element>) { field.formSymmetricDifference(other) }
157 |     override func subtract(_ other: Set<Field.Element>) { field.subtract(other) }
    |                                     `- error: type 'Field.Element' does not conform to protocol 'Hashable'
158 |
159 |     final override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:157:19: error: method does not override any method from its superclass
155 |     override func formIntersection(_ other: Set<Field.Element>) { field.formIntersection(other) }
156 |     override func formSymmetricDifference(_ other: Set<Field.Element>) { field.formSymmetricDifference(other) }
157 |     override func subtract(_ other: Set<Field.Element>) { field.subtract(other) }
    |                   `- error: method does not override any method from its superclass
158 |
159 |     final override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:159:25: error: method does not override any method from its superclass
157 |     override func subtract(_ other: Set<Field.Element>) { field.subtract(other) }
158 |
159 |     final override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
    |                         `- error: method does not override any method from its superclass
160 |         updateSource.add(sink)
161 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/GlueKit/Sources/ValueMappingForSetField.swift:164:25: error: method does not override any method from its superclass
162 |
163 |     @discardableResult
164 |     final override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
    |                         `- error: method does not override any method from its superclass
165 |         return updateSource.remove(sink)
166 |     }
warning: 'spi-builder-workspace': dependency 'siphash' is not used by any target
BUILD FAILURE 6.0 macosSpm