         }
         
         @inlinable
-        func container<Key>(keyedBy type: Key.Type) throws -> KeyedDecodingContainer<Key> where Key: Swift.CodingKey {
+        func container<Key: Swift.CodingKey>(keyedBy type: Key.Type) throws -> KeyedDecodingContainer<Key> {
             
             guard !value.isNil else { throw DataPack.DecodeError.valueNotFound }
             guard case let .dictionary(dictionary) = value.base else { throw DataPack.DecodeError.unsupportedType }

    }
    
    @inlinable
    mutating func nestedContainer<NestedKey>(keyedBy type: NestedKey.Type) throws -> KeyedDecodingContainer<NestedKey> where NestedKey : CodingKey {
        
        guard !self.isAtEnd else { throw DataPack.DecodeError.valueNotFound }
        

extension DataPack {
    
    @inlinable
    public func decode<T: Decodable>(_ type: T.Type, options: DecoderOptions = DecoderOptions()) throws -> T {
        return try T(from: _Decoder(value: self, codingPath: [], options: options))
    }
    
