sclass MechListDependentCache extends Cache {
// maker is now F1
S listName, lastListContents;
*() {}
*(S *listName, O *maker) {}
A make() { ret (A) callF(maker, lastListContents); }
A get() {
if (hasLock(lock)) ret value; // Must be called from within maker
{
S listContents = mL_raw(listName);
lock lock;
if (!eqOrSame(listContents, lastListContents))
clear();
lastListContents = listContents;
}
ret super.get();
}
}