!7 sclass Entry { S text; } module ELERewrites > DynObjectTable { transient S input; transient Set rewrites = ciSet(); start { ele_onInput(lambda1 setInput); } // API void setInput(S input) enter { dm_q(r { if (setField(+input)) clearRewrites(); }); } void clearRewrites() { rewrites.clear(); clear(); } void addRewrite(S input, S text) q { if (eq(input, ELERewrites.this.input) && rewrites.add(text)) add(nu Entry(+text)); } }