mutation
Deterministic string mutation. Given (input, seed, n), apply n random
mutations of three kinds – substitute, insert, delete a character – to
the input. The seed makes it reproducible: the same triple always
returns the same output. That's the invariant.
Useful as the trivial canary for the mutation-testing family: given a program p and an eval e, does e(mutate(p)) fail? A working eval should reject most mutants; a broken one accepts them.
The pure transform lives in wal-sh.tools.mutation.core (host-neutral
.cljc). PRNG is xorshift32; alphabet is ASCII letters + digits + light
punctuation. The browser adapter is wal-sh.tools.mutation.browser.
Build: gmake tools-cljs; debug in isolation: gmake dev-tool TOOL=mutation.