!7 compact module CountThings > DynPrintLog { start { dm_onTopInput(voidfunc(fS s) { reactTo(s) }); } void reactTo(fS s) enter { switch to q(); new Matches m; if "how many * are there" { S singular = print("singular", singular($1)); int n = l(dm_getReverseDefinitions(a(singular))); if (n != 0) dm_say(n); } } }