getCachedKeys = (keys, cacheAssoc) => {
	let root = cache.get(cacheAssoc);
	if (root === undefined) {
		root = new ObjectStructure();
		cache.set(cacheAssoc, root);
	}
	let current = root;
	for (const key of keys) {
		current = current.key(key);
	}
	return current.getKeys(keys);
}
@template T
@param {(keyof T)[]} keys keys
@param {CacheAssoc} cacheAssoc cache assoc fn
@returns {(keyof T)[]} keys