         return nil
     }
     
-    public func id(for value: Element) -> UInt64? {
+    public func id(for value: Element) -> Result? {
         if let id = self.t2icache[value] {
             return id
         } else if let id = self.pack(value: value) {

        self.t2icache = LRUCache(capacity: 64)
    }
    
    private static func idRange(for type: UInt8) -> Range<UInt64> {
        let min = (UInt64(type) << 56)
        let max = (UInt64(type+1) << 56)
        return min..<max

        return AnyIterator {
            repeat {
                guard let idquad = i.next() else { return nil }
                let oid = idquad[3]
                let languageQuad = PersistentTermIdentityMap.isLanguageLiteral(id: oid)
                if languageQuad {
                    return idquad
                } else {
                    guard let quad = self.quad(from: idquad) else { return nil }
                    if self.accept(quad: quad, languages: self.acceptLanguages) {
                        return idquad
                    }
                }
            } while true
        }
