     //
     
     /// The hash value for the data.
-    @inlinable
-    public var hashValue: Int {
-        return _representation.hashValue
+    @inline(never) // This is not inlinable as emission into clients could cause cross-module inconsistencies if they are not all recompiled together.
+    public func hash(into hasher: inout Hasher) {
+        _representation.hash(into: &hasher)
     }
     
     @inlinable

            }
        }

        @inlinable
        var hashValue: Int {
            let count: Int = numericCast(length)
            return Swift.withUnsafeBytes(of: bytes) { (rawBuffer) -> Int in
                return Int(bitPattern: CFHashBytes(UnsafeMutablePointer(mutating: rawBuffer.baseAddress?.assumingMemoryBound(to: UInt8.self)), count))
            }
        }
    }


            }
        }
        
        @inlinable @inline(__always) // This should always be inlined into Data.hash(into:).
        func hash(into hasher: inout Hasher) {
            switch self {
            case .empty:
                hasher.combine(Int(bitPattern: CFHashBytes(nil, 0)))
            case .inline(let inline):
                inline.hash(into: &hasher)
            case .slice(let slice):
                slice.hash(into: &hasher)
            case .large(let large):
                large.hash(into: &hasher)
            }
        }
    }
