uh. why do i actually do these hard static analysis tasks in C++ and not write them in soufflé, which is much better suited for this? (and integrates with C++)
an adventure begins...
souffle 2.5 ships a dpkg for ubuntu 24.04, which saves me a lot of work.
https://souffle-lang.github.io/interface#detailed-usage documents clearly what to do, but i had to learn myself that support for c++20 and later is broken, i need to build the generated file without -std=c++23 which is no issue.