 
 public final class JSON {
     public let raw: Any
-    fileprivate let createObject: () throws -> Any
+    
+    private let evaluate: () throws -> Any
+    private var cached: Any?
     
     public subscript(element: PathElement...) -> LazyJSON {
         return .init(rootJSON: self, currentPath: .init(elements: element))

        }
    }
    
    private init(raw: Any, createObject: @escaping () throws -> Any) {
        self.raw = raw
        self.createObject = createObject
    }
}


            }
        }
        
        let object = try jsonObject()
        let elements = ArraySlice(path.elements)
        return try cast(distilRecursive(object: object, elements: elements))
    }
