!7 static O obj; concept Obj { S structure; } p { db(); loadObj(); bot(); } svoid loadObj { obj = null; Obj o = findConcept(Obj); if (o != null) obj = unstructure(o.structure); } svoid setObj(O newObj) { cset(uniq(Obj), structure := structure(newObj)); loadObj(); } sS haveMsg() { ret "Have object of type " + getClassName(obj); } answer { if (startsWith(s, "!string =", m)) { S newObj = unquoteIfProperlyQuoted(trim($1)); setObj(newObj); ret haveMsg(); } if (eq(s, "!obj")) ret haveMsg(); if (eq(s, "!structure")) ret structure(obj); if (startsWithWord(s, "!op", m)) { S functionName = unquote($1); O newObj = makeAndCall(functionName, obj); setObj(newObj); ret haveMsg(); } }