By: Tom Sydney Kerckhove <syd@cs-syd.eu>
Add TestId, TestIdTrie, and per-test filtering for mutatie Adds the sydtest primitives needed by mutatie (mutation testing tool): - New module Test.Syd.TestId with opaque TestId (description path + per-description sibling index), TestIdTrie for efficient subset filtering, and renderTestId / testIdFilterArg for human-readable output and CLI round-tripping. - flattenTestForestWithIds: enumerate all TestIds from a TestForest in traversal order, assigning stable per-description sibling indices so duplicate descriptions are uniquely identified. - filterTestForestByTrie: filter a TestForest to exactly the tests in a TestIdTrie; wrapper nodes (beforeAll, aroundAll, etc.) are kept when any child matches and dropped when all children are pruned. - execTestDefM': evaluate a Spec once and return both the TestForest and a TestIdTrie covering all tests, so the spec need not be re-evaluated in a mutation loop. - getTestIds / runFilteredForest: public API for enumerating test IDs and running a pre-built forest filtered to a given trie. - New --filter-id CLI flag and settingFilterIds settings field for exact single-test selection by TestId, composing with the existing --filter.