!7 sclass RepeatAfterMe > CruddieScript { swappable void deleteMe() {} swappable S rewrite(S s) { ret s; } S answer(S s) { new Matches m; if "stop repeating..." { deleteMe(); ret "OK stopped"; } ret rewrite(s); } } sclass RepeatAfterMeAndSwitch > CruddieScript { S rewrite(S s) { ret switcheroo(s); } } sclass GoPublic > CruddieScript { swappable void makeBotPublic(bool b) {} swappable Bool isBotPublic() { null; } S answer(S s) null { if "go public" { makeBotPublic(true); ret "OK"; } if "go private" { makeBotPublic(false); ret "OK"; } if "are you public" ret trueFalseNull(isBotPublic(), "yes", "no", "not sure"); } } cmodule SomeCruddieScripts { }