static A uniqueConcept(Class c, O... params) {
ret uniqueConcept(db_mainConcepts(), c, params);
}
static A uniqueConcept(Concepts cc, Class c, O... params) {
temp tempDBLock(cc);
params = expandParams(c, params);
A x = findConceptWhere(cc, c, params);
if (x == null) {
x = unlisted(c);
ifdef uniqueConcept_debug
printStackTrace(renderVars_str uniqueConcept_debug(action := "Made unlisted", +cc, +c, +params, +x));
endifdef
csetAll(x, params);
cc.register(x);
} else {
ifdef uniqueConcept_debug
printStackTrace(renderVars_str printVars_str uniqueConcept_debug(action := "Found existing", +cc, +c, +params, +x));
endifdef
}
ret x;
}