btw @everyone I'm about to open a PR that tweaks how the nll-facts are laid out, in an effort to fix #24. One of the things it does is to remove the
universal_regions facts and instead just add more
In particular, each universal region (e.g., a named lifetime parameter) is always live over the entire CFG. Before, I didn't add those facts explicitly, but instead had a
universal_region(R) fact that then had to be accounted for in the rules separately. This was a pain in the neck and kind of a micro-optimization that — I think — made no difference. In the optimized rules, in fact, I manually expanded the
universal_region facts into
region_live_at facts to simplify my life. So I've just moved that into the compiler.