     }
     
     @inlinable
-    mutating func decode<T>(_ type: T.Type) throws -> T where T : Decodable {
+    mutating func decode<T: Decodable>(_ type: T.Type) throws -> T {
         
         guard !self.isAtEnd else { throw DataPack.DecodeError.valueNotFound }
         

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

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))
    }
    
