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 GlueKit, reference v0.2.0 (a5766b), with Swift 6.1 for macOS (SPM) on 25 Apr 2025 21:11:55 UTC.

Build Command

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

Build Log

    |                   `- 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/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/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/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/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/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/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/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/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/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/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/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/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/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/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 |     }
/Users/admin/builder/spi-builder-workspace/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/Sources/ValueMappingForSetField.swift:11:77: error: type of expression is ambiguous without a type annotation
  9 | extension ObservableValueType {
 10 |     public func map<Field: ObservableSetType>(_ key: @escaping (Value) -> Field) -> AnyObservableSet<Field.Element> {
 11 |         return ValueMappingForSetField<Self, Field>(parent: self, key: key).anyObservableSet
    |                                                                             `- error: type of expression is ambiguous without a type annotation
 12 |     }
 13 |
/Users/admin/builder/spi-builder-workspace/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/Sources/ValueMappingForSetField.swift:15:86: error: type of expression is ambiguous without a type annotation
 13 |
 14 |     public func map<Field: UpdatableSetType>(_ key: @escaping (Value) -> Field) -> AnyUpdatableSet<Field.Element> {
 15 |         return ValueMappingForUpdatableSetField<Self, Field>(parent: self, key: key).anyUpdatableSet
    |                                                                                      `- error: type of expression is ambiguous without a type annotation
 16 |     }
 17 | }
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:64:15: error: instance method 'add' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 62 |     override func activate() {
 63 |         let field = key(parent.value)
 64 |         field.add(FieldSink(owner: self))
    |               `- error: instance method 'add' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 65 |         parent.add(ParentSink(owner: self))
 66 |         _field = field
/Users/admin/builder/spi-builder-workspace/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
14 |     var value: Value { get }
15 |
16 |     func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
17 |
18 |     @discardableResult
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:71:17: error: instance method 'remove' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 69 |     override func deactivate() {
 70 |         parent.remove(ParentSink(owner: self))
 71 |         _field!.remove(FieldSink(owner: self))
    |                 `- error: instance method 'remove' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 72 |         _field = nil
 73 |     }
/Users/admin/builder/spi-builder-workspace/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
17 |
18 |     @discardableResult
19 |     func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:76:17: error: instance method 'remove' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 74 |
 75 |     private func subscribe(to field: Field) {
 76 |         _field!.remove(FieldSink(owner: self))
    |                 `- error: instance method 'remove' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 77 |         _field = field
 78 |         field.add(FieldSink(owner: self))
/Users/admin/builder/spi-builder-workspace/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
17 |
18 |     @discardableResult
19 |     func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:78:15: error: instance method 'add' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 76 |         _field!.remove(FieldSink(owner: self))
 77 |         _field = field
 78 |         field.add(FieldSink(owner: self))
    |               `- error: instance method 'add' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 79 |     }
 80 |
/Users/admin/builder/spi-builder-workspace/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
14 |     var value: Value { get }
15 |
16 |     func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
17 |
18 |     @discardableResult
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:84:13: error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 82 |         switch update {
 83 |         case .beginTransaction:
 84 |             beginTransaction()
    |             `- error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 85 |         case .change(let change):
 86 |             let oldValue = self._field!.value
/Users/admin/builder/spi-builder-workspace/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/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/Sources/ValueMappingForSetField.swift:89:24: error: cannot convert value of type 'SetChange<Field.Element>' to expected argument type 'UpdateSourceForSetField<Parent, Field>.Change'
 87 |             let field = self.key(change.new)
 88 |             self.subscribe(to: field)
 89 |             sendChange(SetChange(removed: oldValue, inserted: field.value))
    |                        `- error: cannot convert value of type 'SetChange<Field.Element>' to expected argument type 'UpdateSourceForSetField<Parent, Field>.Change'
 90 |         case .endTransaction:
 91 |             endTransaction()
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:89:13: error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 87 |             let field = self.key(change.new)
 88 |             self.subscribe(to: field)
 89 |             sendChange(SetChange(removed: oldValue, inserted: field.value))
    |             `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 90 |         case .endTransaction:
 91 |             endTransaction()
/Users/admin/builder/spi-builder-workspace/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:89:24: error: generic struct 'SetChange' requires that 'Field.Element' conform to 'Hashable'
 87 |             let field = self.key(change.new)
 88 |             self.subscribe(to: field)
 89 |             sendChange(SetChange(removed: oldValue, inserted: field.value))
    |                        `- error: generic struct 'SetChange' requires that 'Field.Element' conform to 'Hashable'
 90 |         case .endTransaction:
 91 |             endTransaction()
/Users/admin/builder/spi-builder-workspace/Sources/SetChange.swift:9:15: note: where 'Element' = 'Field.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Field.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:91:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 89 |             sendChange(SetChange(removed: oldValue, inserted: field.value))
 90 |         case .endTransaction:
 91 |             endTransaction()
    |             `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 92 |         }
 93 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:96:9: error: referencing instance method 'send' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 94 |
 95 |     func applyFieldUpdate(_ update: SetUpdate<Field.Element>) {
 96 |         send(update)
    |         `- error: referencing instance method 'send' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 97 |     }
 98 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/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/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/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/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/Sources/ValueMappingForSetField.swift:119:22: error: type of expression is ambiguous without a type annotation
117 |
118 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
119 |         updateSource.add(sink)
    |                      `- error: type of expression is ambiguous without a type annotation
120 |     }
121 |
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:124:29: error: type of expression is ambiguous without a type annotation
122 |     @discardableResult
123 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
124 |         return updateSource.remove(sink)
    |                             `- error: type of expression is ambiguous without a type annotation
125 |     }
126 | }
/Users/admin/builder/spi-builder-workspace/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/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/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/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/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/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/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/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/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/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/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/Sources/ValueMappingForSetField.swift:160:22: error: type of expression is ambiguous without a type annotation
158 |
159 |     final override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
160 |         updateSource.add(sink)
    |                      `- error: type of expression is ambiguous without a type annotation
161 |     }
162 |
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:165:29: error: type of expression is ambiguous without a type annotation
163 |     @discardableResult
164 |     final override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
165 |         return updateSource.remove(sink)
    |                             `- error: type of expression is ambiguous without a type annotation
166 |     }
167 | }
/Users/admin/builder/spi-builder-workspace/Sources/OwnedSink.swift:18:9: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForSourceField.SourceFieldSink' to 'Hashable' by implementing 'hash(into:)' instead
16 |
17 | extension UniqueOwnedSink {
18 |     var hashValue: Int {
   |         `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForSourceField.SourceFieldSink' to 'Hashable' by implementing 'hash(into:)' instead
19 |         return ObjectIdentifier(owner).hashValue
20 |     }
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForValue.swift:11:5: warning: 'public' modifier is redundant for instance method declared in a public extension
 9 | public extension ObservableValueType {
10 |     /// Returns an observable that calculates `transform` on all current and future values of this observable.
11 |     public func map<Output>(_ transform: @escaping (Value) -> Output) -> AnyObservableValue<Output> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
12 |         return ValueMappingForValue<Self, Output>(parent: self, transform: transform).anyObservableValue
13 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForValueField.ParentSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForValueField.ParentSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForValueField.FieldSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForValueField.FieldSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForOptionalValueField.ParentSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForOptionalValueField.ParentSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForOptionalValueField.FieldSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForOptionalValueField.FieldSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/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/Sources/OwnedSink.swift:18:9: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UnpackedObservableValueReference.ReferenceSink' to 'Hashable' by implementing 'hash(into:)' instead
16 |
17 | extension UniqueOwnedSink {
18 |     var hashValue: Int {
   |         `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UnpackedObservableValueReference.ReferenceSink' to 'Hashable' by implementing 'hash(into:)' instead
19 |         return ObjectIdentifier(owner).hashValue
20 |     }
/Users/admin/builder/spi-builder-workspace/Sources/OwnedSink.swift:18:9: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UnpackedObservableValueReference.TargetSink' to 'Hashable' by implementing 'hash(into:)' instead
16 |
17 | extension UniqueOwnedSink {
18 |     var hashValue: Int {
   |         `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UnpackedObservableValueReference.TargetSink' to 'Hashable' by implementing 'hash(into:)' instead
19 |         return ObjectIdentifier(owner).hashValue
20 |     }
[113/125] Compiling GlueKit ValueReference.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UpdateSourceForArrayField.ParentSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UpdateSourceForArrayField.ParentSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UpdateSourceForArrayField.FieldSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UpdateSourceForArrayField.FieldSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/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/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/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/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/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UpdateSourceForSetField.ParentSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UpdateSourceForSetField.ParentSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/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/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UpdateSourceForSetField.FieldSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UpdateSourceForSetField.FieldSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/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'
    |                    `- note: add stubs for conformance
 36 |         typealias Owner = UpdateSourceForSetField
 37 |
/Users/admin/builder/spi-builder-workspace/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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 |     }
/Users/admin/builder/spi-builder-workspace/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/Sources/ValueMappingForSetField.swift:11:77: error: type of expression is ambiguous without a type annotation
  9 | extension ObservableValueType {
 10 |     public func map<Field: ObservableSetType>(_ key: @escaping (Value) -> Field) -> AnyObservableSet<Field.Element> {
 11 |         return ValueMappingForSetField<Self, Field>(parent: self, key: key).anyObservableSet
    |                                                                             `- error: type of expression is ambiguous without a type annotation
 12 |     }
 13 |
/Users/admin/builder/spi-builder-workspace/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/Sources/ValueMappingForSetField.swift:15:86: error: type of expression is ambiguous without a type annotation
 13 |
 14 |     public func map<Field: UpdatableSetType>(_ key: @escaping (Value) -> Field) -> AnyUpdatableSet<Field.Element> {
 15 |         return ValueMappingForUpdatableSetField<Self, Field>(parent: self, key: key).anyUpdatableSet
    |                                                                                      `- error: type of expression is ambiguous without a type annotation
 16 |     }
 17 | }
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:64:15: error: instance method 'add' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 62 |     override func activate() {
 63 |         let field = key(parent.value)
 64 |         field.add(FieldSink(owner: self))
    |               `- error: instance method 'add' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 65 |         parent.add(ParentSink(owner: self))
 66 |         _field = field
/Users/admin/builder/spi-builder-workspace/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
14 |     var value: Value { get }
15 |
16 |     func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
17 |
18 |     @discardableResult
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:71:17: error: instance method 'remove' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 69 |     override func deactivate() {
 70 |         parent.remove(ParentSink(owner: self))
 71 |         _field!.remove(FieldSink(owner: self))
    |                 `- error: instance method 'remove' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 72 |         _field = nil
 73 |     }
/Users/admin/builder/spi-builder-workspace/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
17 |
18 |     @discardableResult
19 |     func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:76:17: error: instance method 'remove' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 74 |
 75 |     private func subscribe(to field: Field) {
 76 |         _field!.remove(FieldSink(owner: self))
    |                 `- error: instance method 'remove' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 77 |         _field = field
 78 |         field.add(FieldSink(owner: self))
/Users/admin/builder/spi-builder-workspace/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
17 |
18 |     @discardableResult
19 |     func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:78:15: error: instance method 'add' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 76 |         _field!.remove(FieldSink(owner: self))
 77 |         _field = field
 78 |         field.add(FieldSink(owner: self))
    |               `- error: instance method 'add' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 79 |     }
 80 |
/Users/admin/builder/spi-builder-workspace/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
14 |     var value: Value { get }
15 |
16 |     func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
17 |
18 |     @discardableResult
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:84:13: error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 82 |         switch update {
 83 |         case .beginTransaction:
 84 |             beginTransaction()
    |             `- error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 85 |         case .change(let change):
 86 |             let oldValue = self._field!.value
/Users/admin/builder/spi-builder-workspace/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/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/Sources/ValueMappingForSetField.swift:89:24: error: cannot convert value of type 'SetChange<Field.Element>' to expected argument type 'UpdateSourceForSetField<Parent, Field>.Change'
 87 |             let field = self.key(change.new)
 88 |             self.subscribe(to: field)
 89 |             sendChange(SetChange(removed: oldValue, inserted: field.value))
    |                        `- error: cannot convert value of type 'SetChange<Field.Element>' to expected argument type 'UpdateSourceForSetField<Parent, Field>.Change'
 90 |         case .endTransaction:
 91 |             endTransaction()
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:89:13: error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 87 |             let field = self.key(change.new)
 88 |             self.subscribe(to: field)
 89 |             sendChange(SetChange(removed: oldValue, inserted: field.value))
    |             `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 90 |         case .endTransaction:
 91 |             endTransaction()
/Users/admin/builder/spi-builder-workspace/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:89:24: error: generic struct 'SetChange' requires that 'Field.Element' conform to 'Hashable'
 87 |             let field = self.key(change.new)
 88 |             self.subscribe(to: field)
 89 |             sendChange(SetChange(removed: oldValue, inserted: field.value))
    |                        `- error: generic struct 'SetChange' requires that 'Field.Element' conform to 'Hashable'
 90 |         case .endTransaction:
 91 |             endTransaction()
/Users/admin/builder/spi-builder-workspace/Sources/SetChange.swift:9:15: note: where 'Element' = 'Field.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Field.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:91:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 89 |             sendChange(SetChange(removed: oldValue, inserted: field.value))
 90 |         case .endTransaction:
 91 |             endTransaction()
    |             `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 92 |         }
 93 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:96:9: error: referencing instance method 'send' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 94 |
 95 |     func applyFieldUpdate(_ update: SetUpdate<Field.Element>) {
 96 |         send(update)
    |         `- error: referencing instance method 'send' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 97 |     }
 98 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/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/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/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/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/Sources/ValueMappingForSetField.swift:119:22: error: type of expression is ambiguous without a type annotation
117 |
118 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
119 |         updateSource.add(sink)
    |                      `- error: type of expression is ambiguous without a type annotation
120 |     }
121 |
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:124:29: error: type of expression is ambiguous without a type annotation
122 |     @discardableResult
123 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
124 |         return updateSource.remove(sink)
    |                             `- error: type of expression is ambiguous without a type annotation
125 |     }
126 | }
/Users/admin/builder/spi-builder-workspace/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/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/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/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/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/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/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/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/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/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/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/Sources/ValueMappingForSetField.swift:160:22: error: type of expression is ambiguous without a type annotation
158 |
159 |     final override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
160 |         updateSource.add(sink)
    |                      `- error: type of expression is ambiguous without a type annotation
161 |     }
162 |
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:165:29: error: type of expression is ambiguous without a type annotation
163 |     @discardableResult
164 |     final override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
165 |         return updateSource.remove(sink)
    |                             `- error: type of expression is ambiguous without a type annotation
166 |     }
167 | }
/Users/admin/builder/spi-builder-workspace/Sources/OwnedSink.swift:18:9: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForSourceField.SourceFieldSink' to 'Hashable' by implementing 'hash(into:)' instead
16 |
17 | extension UniqueOwnedSink {
18 |     var hashValue: Int {
   |         `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForSourceField.SourceFieldSink' to 'Hashable' by implementing 'hash(into:)' instead
19 |         return ObjectIdentifier(owner).hashValue
20 |     }
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForValue.swift:11:5: warning: 'public' modifier is redundant for instance method declared in a public extension
 9 | public extension ObservableValueType {
10 |     /// Returns an observable that calculates `transform` on all current and future values of this observable.
11 |     public func map<Output>(_ transform: @escaping (Value) -> Output) -> AnyObservableValue<Output> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
12 |         return ValueMappingForValue<Self, Output>(parent: self, transform: transform).anyObservableValue
13 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForValueField.ParentSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForValueField.ParentSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForValueField.FieldSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForValueField.FieldSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForOptionalValueField.ParentSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForOptionalValueField.ParentSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForOptionalValueField.FieldSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForOptionalValueField.FieldSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/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/Sources/OwnedSink.swift:18:9: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UnpackedObservableValueReference.ReferenceSink' to 'Hashable' by implementing 'hash(into:)' instead
16 |
17 | extension UniqueOwnedSink {
18 |     var hashValue: Int {
   |         `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UnpackedObservableValueReference.ReferenceSink' to 'Hashable' by implementing 'hash(into:)' instead
19 |         return ObjectIdentifier(owner).hashValue
20 |     }
/Users/admin/builder/spi-builder-workspace/Sources/OwnedSink.swift:18:9: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UnpackedObservableValueReference.TargetSink' to 'Hashable' by implementing 'hash(into:)' instead
16 |
17 | extension UniqueOwnedSink {
18 |     var hashValue: Int {
   |         `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UnpackedObservableValueReference.TargetSink' to 'Hashable' by implementing 'hash(into:)' instead
19 |         return ObjectIdentifier(owner).hashValue
20 |     }
[114/125] Compiling GlueKit Variable.swift
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UpdateSourceForArrayField.ParentSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UpdateSourceForArrayField.ParentSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UpdateSourceForArrayField.FieldSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UpdateSourceForArrayField.FieldSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/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/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/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/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/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UpdateSourceForSetField.ParentSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UpdateSourceForSetField.ParentSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/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/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UpdateSourceForSetField.FieldSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UpdateSourceForSetField.FieldSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/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'
    |                    `- note: add stubs for conformance
 36 |         typealias Owner = UpdateSourceForSetField
 37 |
/Users/admin/builder/spi-builder-workspace/Sources/Sink.swift:10:20: note: protocol requires nested type 'Value'
  8 |
  9 | public protocol SinkType: Hashable {
 10 |     associatedtype Value
    |                    `- note: protocol requires nested type 'Value'
 11 |     func receive(_ value: Value)
 12 |
/Users/admin/builder/spi-builder-workspace/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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 |     }
/Users/admin/builder/spi-builder-workspace/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/Sources/ValueMappingForSetField.swift:11:77: error: type of expression is ambiguous without a type annotation
  9 | extension ObservableValueType {
 10 |     public func map<Field: ObservableSetType>(_ key: @escaping (Value) -> Field) -> AnyObservableSet<Field.Element> {
 11 |         return ValueMappingForSetField<Self, Field>(parent: self, key: key).anyObservableSet
    |                                                                             `- error: type of expression is ambiguous without a type annotation
 12 |     }
 13 |
/Users/admin/builder/spi-builder-workspace/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/Sources/ValueMappingForSetField.swift:15:86: error: type of expression is ambiguous without a type annotation
 13 |
 14 |     public func map<Field: UpdatableSetType>(_ key: @escaping (Value) -> Field) -> AnyUpdatableSet<Field.Element> {
 15 |         return ValueMappingForUpdatableSetField<Self, Field>(parent: self, key: key).anyUpdatableSet
    |                                                                                      `- error: type of expression is ambiguous without a type annotation
 16 |     }
 17 | }
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:64:15: error: instance method 'add' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 62 |     override func activate() {
 63 |         let field = key(parent.value)
 64 |         field.add(FieldSink(owner: self))
    |               `- error: instance method 'add' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 65 |         parent.add(ParentSink(owner: self))
 66 |         _field = field
/Users/admin/builder/spi-builder-workspace/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
14 |     var value: Value { get }
15 |
16 |     func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
17 |
18 |     @discardableResult
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:71:17: error: instance method 'remove' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 69 |     override func deactivate() {
 70 |         parent.remove(ParentSink(owner: self))
 71 |         _field!.remove(FieldSink(owner: self))
    |                 `- error: instance method 'remove' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 72 |         _field = nil
 73 |     }
/Users/admin/builder/spi-builder-workspace/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
17 |
18 |     @discardableResult
19 |     func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:76:17: error: instance method 'remove' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 74 |
 75 |     private func subscribe(to field: Field) {
 76 |         _field!.remove(FieldSink(owner: self))
    |                 `- error: instance method 'remove' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 77 |         _field = field
 78 |         field.add(FieldSink(owner: self))
/Users/admin/builder/spi-builder-workspace/Sources/ObservableType.swift:19:10: note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
17 |
18 |     @discardableResult
19 |     func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:78:15: error: instance method 'add' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 76 |         _field!.remove(FieldSink(owner: self))
 77 |         _field = field
 78 |         field.add(FieldSink(owner: self))
    |               `- error: instance method 'add' requires the types 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value' and 'Update<Field.Change>' be equivalent
 79 |     }
 80 |
/Users/admin/builder/spi-builder-workspace/Sources/ObservableType.swift:16:10: note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
14 |     var value: Value { get }
15 |
16 |     func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change>
   |          `- note: where 'Sink.Value' = 'UpdateSourceForSetField<Parent, Field>.FieldSink.Value', 'Update<Self.Change>' = 'Update<Field.Change>'
17 |
18 |     @discardableResult
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:84:13: error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 82 |         switch update {
 83 |         case .beginTransaction:
 84 |             beginTransaction()
    |             `- error: referencing instance method 'beginTransaction()' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 85 |         case .change(let change):
 86 |             let oldValue = self._field!.value
/Users/admin/builder/spi-builder-workspace/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/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/Sources/ValueMappingForSetField.swift:89:24: error: cannot convert value of type 'SetChange<Field.Element>' to expected argument type 'UpdateSourceForSetField<Parent, Field>.Change'
 87 |             let field = self.key(change.new)
 88 |             self.subscribe(to: field)
 89 |             sendChange(SetChange(removed: oldValue, inserted: field.value))
    |                        `- error: cannot convert value of type 'SetChange<Field.Element>' to expected argument type 'UpdateSourceForSetField<Parent, Field>.Change'
 90 |         case .endTransaction:
 91 |             endTransaction()
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:89:13: error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 87 |             let field = self.key(change.new)
 88 |             self.subscribe(to: field)
 89 |             sendChange(SetChange(removed: oldValue, inserted: field.value))
    |             `- error: referencing instance method 'sendChange' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 90 |         case .endTransaction:
 91 |             endTransaction()
/Users/admin/builder/spi-builder-workspace/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:89:24: error: generic struct 'SetChange' requires that 'Field.Element' conform to 'Hashable'
 87 |             let field = self.key(change.new)
 88 |             self.subscribe(to: field)
 89 |             sendChange(SetChange(removed: oldValue, inserted: field.value))
    |                        `- error: generic struct 'SetChange' requires that 'Field.Element' conform to 'Hashable'
 90 |         case .endTransaction:
 91 |             endTransaction()
/Users/admin/builder/spi-builder-workspace/Sources/SetChange.swift:9:15: note: where 'Element' = 'Field.Element'
 7 | //
 8 |
 9 | public struct SetChange<Element: Hashable>: ChangeType {
   |               `- note: where 'Element' = 'Field.Element'
10 |     public typealias Value = Set<Element>
11 |
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:91:13: error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 89 |             sendChange(SetChange(removed: oldValue, inserted: field.value))
 90 |         case .endTransaction:
 91 |             endTransaction()
    |             `- error: referencing instance method 'endTransaction()' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 92 |         }
 93 |     }
/Users/admin/builder/spi-builder-workspace/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:96:9: error: referencing instance method 'send' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 94 |
 95 |     func applyFieldUpdate(_ update: SetUpdate<Field.Element>) {
 96 |         send(update)
    |         `- error: referencing instance method 'send' on 'TransactionalThing' requires that 'UpdateSourceForSetField<Parent, Field>' conform to 'TransactionalThing'
 97 |     }
 98 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransactionalThing.swift:41:1: note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 39 | }
 40 |
 41 | extension TransactionalThing {
    | `- note: where 'Self' = 'UpdateSourceForSetField<Parent, Field>'
 42 |     var signal: TransactionalSignal<Change> {
 43 |         if let signal = _signal { return signal }
/Users/admin/builder/spi-builder-workspace/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/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/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/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/Sources/ValueMappingForSetField.swift:119:22: error: type of expression is ambiguous without a type annotation
117 |
118 |     override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
119 |         updateSource.add(sink)
    |                      `- error: type of expression is ambiguous without a type annotation
120 |     }
121 |
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:124:29: error: type of expression is ambiguous without a type annotation
122 |     @discardableResult
123 |     override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
124 |         return updateSource.remove(sink)
    |                             `- error: type of expression is ambiguous without a type annotation
125 |     }
126 | }
/Users/admin/builder/spi-builder-workspace/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/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/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/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/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/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/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/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/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/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/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/Sources/ValueMappingForSetField.swift:160:22: error: type of expression is ambiguous without a type annotation
158 |
159 |     final override func add<Sink: SinkType>(_ sink: Sink) where Sink.Value == Update<Change> {
160 |         updateSource.add(sink)
    |                      `- error: type of expression is ambiguous without a type annotation
161 |     }
162 |
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForSetField.swift:165:29: error: type of expression is ambiguous without a type annotation
163 |     @discardableResult
164 |     final override func remove<Sink: SinkType>(_ sink: Sink) -> Sink where Sink.Value == Update<Change> {
165 |         return updateSource.remove(sink)
    |                             `- error: type of expression is ambiguous without a type annotation
166 |     }
167 | }
/Users/admin/builder/spi-builder-workspace/Sources/OwnedSink.swift:18:9: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForSourceField.SourceFieldSink' to 'Hashable' by implementing 'hash(into:)' instead
16 |
17 | extension UniqueOwnedSink {
18 |     var hashValue: Int {
   |         `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForSourceField.SourceFieldSink' to 'Hashable' by implementing 'hash(into:)' instead
19 |         return ObjectIdentifier(owner).hashValue
20 |     }
/Users/admin/builder/spi-builder-workspace/Sources/ValueMappingForValue.swift:11:5: warning: 'public' modifier is redundant for instance method declared in a public extension
 9 | public extension ObservableValueType {
10 |     /// Returns an observable that calculates `transform` on all current and future values of this observable.
11 |     public func map<Output>(_ transform: @escaping (Value) -> Output) -> AnyObservableValue<Output> {
   |     `- warning: 'public' modifier is redundant for instance method declared in a public extension
12 |         return ValueMappingForValue<Self, Output>(parent: self, transform: transform).anyObservableValue
13 |     }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForValueField.ParentSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForValueField.ParentSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForValueField.FieldSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForValueField.FieldSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForOptionalValueField.ParentSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForOptionalValueField.ParentSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForOptionalValueField.FieldSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'ValueMappingForOptionalValueField.FieldSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/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/Sources/OwnedSink.swift:18:9: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UnpackedObservableValueReference.ReferenceSink' to 'Hashable' by implementing 'hash(into:)' instead
16 |
17 | extension UniqueOwnedSink {
18 |     var hashValue: Int {
   |         `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UnpackedObservableValueReference.ReferenceSink' to 'Hashable' by implementing 'hash(into:)' instead
19 |         return ObjectIdentifier(owner).hashValue
20 |     }
/Users/admin/builder/spi-builder-workspace/Sources/OwnedSink.swift:18:9: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UnpackedObservableValueReference.TargetSink' to 'Hashable' by implementing 'hash(into:)' instead
16 |
17 | extension UniqueOwnedSink {
18 |     var hashValue: Int {
   |         `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'UnpackedObservableValueReference.TargetSink' to 'Hashable' by implementing 'hash(into:)' instead
19 |         return ObjectIdentifier(owner).hashValue
20 |     }
[115/125] Compiling GlueKit Sink.swift
/Users/admin/builder/spi-builder-workspace/Sources/Sink.swift:49:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'AnySink' to 'Hashable' by implementing 'hash(into:)' instead
 47 |     }
 48 |
 49 |     public var hashValue: Int {
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'AnySink' to 'Hashable' by implementing 'hash(into:)' instead
 50 |         return box.hashValue
 51 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Sink.swift:70:9: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type '_AbstractSink' to 'Hashable' by implementing 'hash(into:)' instead
 68 |     func receive(_ value: Value) { abstract() }
 69 |
 70 |     var hashValue: Int { abstract() }
    |         `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type '_AbstractSink' to 'Hashable' by implementing 'hash(into:)' instead
 71 |
 72 |     func isEqual(to other: _AbstractSink<Value>) -> Bool { abstract() }
/Users/admin/builder/spi-builder-workspace/Sources/TimerSource.swift:148:5: warning: 'public' modifier is redundant for initializer declared in a public extension
146 |     /// @param start: The time at which the source should fire first, or nil to begin firing `interval` seconds from now.
147 |     /// @param interval: The minimum time period between the beginnings of subsequent firings.
148 |     public convenience init(queue: DispatchQueue = DispatchQueue.main, start: Date? = nil, interval: TimeInterval) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
149 |         assert(interval > 0)
150 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'TransformedSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'TransformedSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromClosure' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromClosure' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformToConstant' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformToConstant' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromMapping' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromMapping' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromOptionalMapping' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromOptionalMapping' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromFilter' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromFilter' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromSequence' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromSequence' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'BindSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'BindSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
[116/125] Compiling GlueKit Source.swift
/Users/admin/builder/spi-builder-workspace/Sources/Sink.swift:49:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'AnySink' to 'Hashable' by implementing 'hash(into:)' instead
 47 |     }
 48 |
 49 |     public var hashValue: Int {
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'AnySink' to 'Hashable' by implementing 'hash(into:)' instead
 50 |         return box.hashValue
 51 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Sink.swift:70:9: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type '_AbstractSink' to 'Hashable' by implementing 'hash(into:)' instead
 68 |     func receive(_ value: Value) { abstract() }
 69 |
 70 |     var hashValue: Int { abstract() }
    |         `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type '_AbstractSink' to 'Hashable' by implementing 'hash(into:)' instead
 71 |
 72 |     func isEqual(to other: _AbstractSink<Value>) -> Bool { abstract() }
/Users/admin/builder/spi-builder-workspace/Sources/TimerSource.swift:148:5: warning: 'public' modifier is redundant for initializer declared in a public extension
146 |     /// @param start: The time at which the source should fire first, or nil to begin firing `interval` seconds from now.
147 |     /// @param interval: The minimum time period between the beginnings of subsequent firings.
148 |     public convenience init(queue: DispatchQueue = DispatchQueue.main, start: Date? = nil, interval: TimeInterval) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
149 |         assert(interval > 0)
150 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'TransformedSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'TransformedSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromClosure' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromClosure' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformToConstant' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformToConstant' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromMapping' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromMapping' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromOptionalMapping' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromOptionalMapping' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromFilter' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromFilter' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromSequence' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromSequence' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'BindSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'BindSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
[117/125] Compiling GlueKit TimerSource.swift
/Users/admin/builder/spi-builder-workspace/Sources/Sink.swift:49:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'AnySink' to 'Hashable' by implementing 'hash(into:)' instead
 47 |     }
 48 |
 49 |     public var hashValue: Int {
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'AnySink' to 'Hashable' by implementing 'hash(into:)' instead
 50 |         return box.hashValue
 51 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Sink.swift:70:9: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type '_AbstractSink' to 'Hashable' by implementing 'hash(into:)' instead
 68 |     func receive(_ value: Value) { abstract() }
 69 |
 70 |     var hashValue: Int { abstract() }
    |         `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type '_AbstractSink' to 'Hashable' by implementing 'hash(into:)' instead
 71 |
 72 |     func isEqual(to other: _AbstractSink<Value>) -> Bool { abstract() }
/Users/admin/builder/spi-builder-workspace/Sources/TimerSource.swift:148:5: warning: 'public' modifier is redundant for initializer declared in a public extension
146 |     /// @param start: The time at which the source should fire first, or nil to begin firing `interval` seconds from now.
147 |     /// @param interval: The minimum time period between the beginnings of subsequent firings.
148 |     public convenience init(queue: DispatchQueue = DispatchQueue.main, start: Date? = nil, interval: TimeInterval) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
149 |         assert(interval > 0)
150 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'TransformedSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'TransformedSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromClosure' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromClosure' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformToConstant' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformToConstant' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromMapping' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromMapping' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromOptionalMapping' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromOptionalMapping' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromFilter' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromFilter' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromSequence' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromSequence' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'BindSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'BindSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
[118/125] Compiling GlueKit TransactionalThing.swift
/Users/admin/builder/spi-builder-workspace/Sources/Sink.swift:49:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'AnySink' to 'Hashable' by implementing 'hash(into:)' instead
 47 |     }
 48 |
 49 |     public var hashValue: Int {
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'AnySink' to 'Hashable' by implementing 'hash(into:)' instead
 50 |         return box.hashValue
 51 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Sink.swift:70:9: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type '_AbstractSink' to 'Hashable' by implementing 'hash(into:)' instead
 68 |     func receive(_ value: Value) { abstract() }
 69 |
 70 |     var hashValue: Int { abstract() }
    |         `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type '_AbstractSink' to 'Hashable' by implementing 'hash(into:)' instead
 71 |
 72 |     func isEqual(to other: _AbstractSink<Value>) -> Bool { abstract() }
/Users/admin/builder/spi-builder-workspace/Sources/TimerSource.swift:148:5: warning: 'public' modifier is redundant for initializer declared in a public extension
146 |     /// @param start: The time at which the source should fire first, or nil to begin firing `interval` seconds from now.
147 |     /// @param interval: The minimum time period between the beginnings of subsequent firings.
148 |     public convenience init(queue: DispatchQueue = DispatchQueue.main, start: Date? = nil, interval: TimeInterval) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
149 |         assert(interval > 0)
150 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'TransformedSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'TransformedSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromClosure' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromClosure' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformToConstant' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformToConstant' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromMapping' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromMapping' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromOptionalMapping' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromOptionalMapping' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromFilter' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromFilter' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromSequence' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromSequence' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'BindSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'BindSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
[119/125] Compiling GlueKit TransformedSink.swift
/Users/admin/builder/spi-builder-workspace/Sources/Sink.swift:49:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'AnySink' to 'Hashable' by implementing 'hash(into:)' instead
 47 |     }
 48 |
 49 |     public var hashValue: Int {
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'AnySink' to 'Hashable' by implementing 'hash(into:)' instead
 50 |         return box.hashValue
 51 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Sink.swift:70:9: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type '_AbstractSink' to 'Hashable' by implementing 'hash(into:)' instead
 68 |     func receive(_ value: Value) { abstract() }
 69 |
 70 |     var hashValue: Int { abstract() }
    |         `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type '_AbstractSink' to 'Hashable' by implementing 'hash(into:)' instead
 71 |
 72 |     func isEqual(to other: _AbstractSink<Value>) -> Bool { abstract() }
/Users/admin/builder/spi-builder-workspace/Sources/TimerSource.swift:148:5: warning: 'public' modifier is redundant for initializer declared in a public extension
146 |     /// @param start: The time at which the source should fire first, or nil to begin firing `interval` seconds from now.
147 |     /// @param interval: The minimum time period between the beginnings of subsequent firings.
148 |     public convenience init(queue: DispatchQueue = DispatchQueue.main, start: Date? = nil, interval: TimeInterval) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
149 |         assert(interval > 0)
150 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'TransformedSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'TransformedSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromClosure' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromClosure' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformToConstant' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformToConstant' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromMapping' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromMapping' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromOptionalMapping' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromOptionalMapping' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromFilter' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromFilter' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromSequence' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromSequence' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'BindSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'BindSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
[120/125] Compiling GlueKit TransformedSource.swift
/Users/admin/builder/spi-builder-workspace/Sources/Sink.swift:49:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'AnySink' to 'Hashable' by implementing 'hash(into:)' instead
 47 |     }
 48 |
 49 |     public var hashValue: Int {
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'AnySink' to 'Hashable' by implementing 'hash(into:)' instead
 50 |         return box.hashValue
 51 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Sink.swift:70:9: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type '_AbstractSink' to 'Hashable' by implementing 'hash(into:)' instead
 68 |     func receive(_ value: Value) { abstract() }
 69 |
 70 |     var hashValue: Int { abstract() }
    |         `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type '_AbstractSink' to 'Hashable' by implementing 'hash(into:)' instead
 71 |
 72 |     func isEqual(to other: _AbstractSink<Value>) -> Bool { abstract() }
/Users/admin/builder/spi-builder-workspace/Sources/TimerSource.swift:148:5: warning: 'public' modifier is redundant for initializer declared in a public extension
146 |     /// @param start: The time at which the source should fire first, or nil to begin firing `interval` seconds from now.
147 |     /// @param interval: The minimum time period between the beginnings of subsequent firings.
148 |     public convenience init(queue: DispatchQueue = DispatchQueue.main, start: Date? = nil, interval: TimeInterval) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
149 |         assert(interval > 0)
150 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'TransformedSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'TransformedSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromClosure' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromClosure' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformToConstant' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformToConstant' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromMapping' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromMapping' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromOptionalMapping' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromOptionalMapping' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromFilter' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromFilter' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromSequence' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromSequence' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'BindSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'BindSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
[121/125] Compiling GlueKit TwoWayBinding.swift
/Users/admin/builder/spi-builder-workspace/Sources/Sink.swift:49:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'AnySink' to 'Hashable' by implementing 'hash(into:)' instead
 47 |     }
 48 |
 49 |     public var hashValue: Int {
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'AnySink' to 'Hashable' by implementing 'hash(into:)' instead
 50 |         return box.hashValue
 51 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Sink.swift:70:9: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type '_AbstractSink' to 'Hashable' by implementing 'hash(into:)' instead
 68 |     func receive(_ value: Value) { abstract() }
 69 |
 70 |     var hashValue: Int { abstract() }
    |         `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type '_AbstractSink' to 'Hashable' by implementing 'hash(into:)' instead
 71 |
 72 |     func isEqual(to other: _AbstractSink<Value>) -> Bool { abstract() }
/Users/admin/builder/spi-builder-workspace/Sources/TimerSource.swift:148:5: warning: 'public' modifier is redundant for initializer declared in a public extension
146 |     /// @param start: The time at which the source should fire first, or nil to begin firing `interval` seconds from now.
147 |     /// @param interval: The minimum time period between the beginnings of subsequent firings.
148 |     public convenience init(queue: DispatchQueue = DispatchQueue.main, start: Date? = nil, interval: TimeInterval) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
149 |         assert(interval > 0)
150 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'TransformedSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'TransformedSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromClosure' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromClosure' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformToConstant' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformToConstant' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromMapping' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromMapping' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromOptionalMapping' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromOptionalMapping' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromFilter' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromFilter' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromSequence' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromSequence' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'BindSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'BindSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
[122/125] Compiling GlueKit Type Helpers.swift
/Users/admin/builder/spi-builder-workspace/Sources/Sink.swift:49:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'AnySink' to 'Hashable' by implementing 'hash(into:)' instead
 47 |     }
 48 |
 49 |     public var hashValue: Int {
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'AnySink' to 'Hashable' by implementing 'hash(into:)' instead
 50 |         return box.hashValue
 51 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Sink.swift:70:9: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type '_AbstractSink' to 'Hashable' by implementing 'hash(into:)' instead
 68 |     func receive(_ value: Value) { abstract() }
 69 |
 70 |     var hashValue: Int { abstract() }
    |         `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type '_AbstractSink' to 'Hashable' by implementing 'hash(into:)' instead
 71 |
 72 |     func isEqual(to other: _AbstractSink<Value>) -> Bool { abstract() }
/Users/admin/builder/spi-builder-workspace/Sources/TimerSource.swift:148:5: warning: 'public' modifier is redundant for initializer declared in a public extension
146 |     /// @param start: The time at which the source should fire first, or nil to begin firing `interval` seconds from now.
147 |     /// @param interval: The minimum time period between the beginnings of subsequent firings.
148 |     public convenience init(queue: DispatchQueue = DispatchQueue.main, start: Date? = nil, interval: TimeInterval) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
149 |         assert(interval > 0)
150 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'TransformedSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'TransformedSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromClosure' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromClosure' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformToConstant' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformToConstant' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromMapping' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromMapping' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromOptionalMapping' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromOptionalMapping' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromFilter' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromFilter' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromSequence' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromSequence' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'BindSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'BindSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
[123/125] Compiling GlueKit UIBarButtonItem Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Sink.swift:49:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'AnySink' to 'Hashable' by implementing 'hash(into:)' instead
 47 |     }
 48 |
 49 |     public var hashValue: Int {
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'AnySink' to 'Hashable' by implementing 'hash(into:)' instead
 50 |         return box.hashValue
 51 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Sink.swift:70:9: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type '_AbstractSink' to 'Hashable' by implementing 'hash(into:)' instead
 68 |     func receive(_ value: Value) { abstract() }
 69 |
 70 |     var hashValue: Int { abstract() }
    |         `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type '_AbstractSink' to 'Hashable' by implementing 'hash(into:)' instead
 71 |
 72 |     func isEqual(to other: _AbstractSink<Value>) -> Bool { abstract() }
/Users/admin/builder/spi-builder-workspace/Sources/TimerSource.swift:148:5: warning: 'public' modifier is redundant for initializer declared in a public extension
146 |     /// @param start: The time at which the source should fire first, or nil to begin firing `interval` seconds from now.
147 |     /// @param interval: The minimum time period between the beginnings of subsequent firings.
148 |     public convenience init(queue: DispatchQueue = DispatchQueue.main, start: Date? = nil, interval: TimeInterval) {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
149 |         assert(interval > 0)
150 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'TransformedSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'TransformedSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromClosure' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromClosure' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformToConstant' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformToConstant' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromMapping' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromMapping' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromOptionalMapping' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromOptionalMapping' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromFilter' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromFilter' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/Sources/TransformedSink.swift:19:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromSequence' to 'Hashable' by implementing 'hash(into:)' instead
 17 |
 18 | extension SinkTransform where Self: AnyObject {
 19 |     public var hashValue: Int { return ObjectIdentifier(self).hashValue }
    |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'SinkTransformFromSequence' to 'Hashable' by implementing 'hash(into:)' instead
 20 |     public static func ==(a: Self, b: Self) -> Bool { return a === b }
 21 | }
/Users/admin/builder/spi-builder-workspace/.build/checkouts/SipHash/SipHash/SipHashable.swift:42:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'BindSink' to 'Hashable' by implementing 'hash(into:)' instead
40 |     /// Hash values are not guaranteed to be equal across different executions of your program.
41 |     /// Do not save hash values to use during a future execution.
42 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'BindSink' to 'Hashable' by implementing 'hash(into:)' instead
43 |         var hasher = SipHasher()
44 |         appendHashes(to: &hasher)
BUILD FAILURE 6.1 macosSpm