     @discardableResult
     public func update(input: Bytes) -> Bool {
         return .SUCCESS == crypto_generichash_update(
-            &state,
+            opaqueState,
             input, UInt64(input.count)
         ).exitCode
     }


extension GenericHash {
    public class Stream {
        private var state: crypto_generichash_state
        public var outputLength: Int = 0

        init?(key: Bytes?, outputLength: Int) {
            state = crypto_generichash_state()

            guard .SUCCESS == crypto_generichash_init(
                &state,
                key, key?.count ?? 0,
                outputLength
            ).exitCode else { return nil }

            self.outputLength = outputLength
        }
    }
}

        let outputLen = outputLength
        var output = Array<UInt8>(count: outputLen)
        guard .SUCCESS == crypto_generichash_final(
            opaqueState,
            &output, outputLen
        ).exitCode else { return nil }

