ToDo: Rules can be dynamically reordered in "optimize correct" mode by moving the offending rule to the end of the section
ToDo: Refactor statistics to be gathered in their own objects rather than inline with Grammar, Rules, ContextualTest, Set
ToDo: Enable a daemonized version. Easily doable via Perl's Net::Server::PreFork.
ToDo: Make use of Preferred-Targets
ToDo: Move DoesTagMatchSet to Grammar
ToDo: Line number on all applicable warnings
ToDo: Add --only-mappings-corrections --only-mappings --only-corrections
ToDo: Section groups to allow multiple before/after-sections
ToDo: "X Marks the Spot": Using x without setting a new X is equivalent to writing multiple () tests.
ToDo: Optimize-unsafe by eliminating tests which do no good (either always true or never the only one to block).
ToDo: Investigate effects of SetParent/Child and Xx.
ToDo: Rule option blocks: OPTIONS +NEAREST -DELAYED
ToDo: Transaction blocks: TRANSACTION, COMMIT, ROLLBACK
ToDo: Binary input/output stream for lossless chaining of multiple CG-3
ToDo: Make ANCHOR, JUMP, EXECUTE actually do something...
ToDo: Add --ordered and ORDERED UNORDERED rule/set/list options.
ToDo: Allow multiple contextual position per test via ,
ToDo: Dynamic window buffers based on dependency / relation links
ToDo: Make all tag containers have Tag* instead of uint32_t
ToDo: Make all set containers have Set* instead of uint32_t
ToDo: SELECT $$sem IF (-1 N LINK 0 (<+{$$sem,<(.*)>,$1}>)) ;
ToDo: Use Cohort iterator instead of subfunctions
ToDo: Make things less magic (explain what magic means in the various contexts)
ToDo: Handle duplicate different sets and delimiters from INCLUDE files. Possibly make new keyword or option for INCLUDE. Handle line numbering how?
ToDo: Add an insert position for MAP/ADD
ToDo: Don't output a warning if it is identical to last output warning.
ToDo: Allow rules to be run on contextual test targets, if all tests are true.
ToDo: Rules don't currently require ; termination...should they?
ToDo: Cache shared contexts between close rules
ToDo: Document VSTR and STATIC-SETS
ToDo: Implement meta information and variables; <STREAMCMD:SETVAR:var,var,var> and <STREAMCMD:REMVAR:var,var,var> ?
ToDo: Test what happens if you RemCohort a whole window
ToDo: Runtime or section flag to disable or choose when re-running happens when enclosures get unpacked
ToDo: Document how REMRELATIONS may operate only one-way if two-way doesn't exist.
ToDo: Relation sets with either same head, or any head
ToDo: Preferred sets or contexts that fall away after a failure
ToDo: Piping deleted/delayed readings
ToDo: Template left/right edge for linking onwards; 2 template types, add flag for free-form templates; check that +1 or -1 is target; stack for edges
ToDo: Insert tags a'la Substitute (before / after)
ToDo: Optimize case-insensitive tags by pre-calculating the lower-case variants
ToDo: Document static tags
ToDo: Make contextual tests optional but greedy with ?
ToDo: Add ICU_ROOT to FindICU
ToDo: COPY ONLY
ToDo: Cohort-wide versions of set operators; use-case is testing multiple mapping tags at once, while that prefix is in effect
ToDo: Add optimized keyword tag test, maybe only in --grammar-only mode.
ToDo: MOVE/SWITCH should leave stored cohorts where they were; optionally bring along with WITHPARENS flag
ToDo: Check whether boost::dynamic_bitset makes more sense to store valid_rules in
ToDo: Optimize (0 x LINK 0 x) to just be separate contexts
ToDo: Update docs for regex on tag unification
ToDo: APPEND $$baseform + X test cases (see email 2014-08-20)
ToDo: Better error for APPEND (non-baseform)
ToDo: \u and \U escapes in textual tags; possibly only varstrings or "tags"
ToDo: cg-conv should just convert cohorts directly - no need to build whole sentences.
ToDo: When going from section 1 to section 1+2 the first time, just skip right to the section 2 rules
ToDo: Rule type MATH, ARITH or similar to manipulate numeric tag values.
ToDo: Explain that SAFE vs. UNSAFE is about preserving the most information - SAFE is always least destructive
ToDo: Document static tags / static reading
ToDo: Section number in trace
ToDo: Basque correct parse
ToDo: Dep on readings
ToDo: CLINK to require that all paths satisfy the linked tests
