concept CSnippet implements _SetField { long id; // Whoa - clash with superclass field - and it still works S type; S title, md5; O text; S text() { ret fromUtf8_generic(text); } void legacyCompaction() { if (text instanceof S) cset(this, text := toUtf8_generic(text)); } public void _setField(S f, O x) { if (eq(s, 'id)) id = (long) x; else if (eq(s, 'type)) type = (S) x; else if (eq(s, 'title)) title = (S) x; else if (eq(s, 'md5)) md5 = (S) x; else if (eq(s, 'text)) text = x; } }