Persistent Representation of C++ for Fun and Profit

Your typical compiler works hard to understand your C++ programs so it can generate good, efficient executables for them. With C++20 and up, thanks to Modules, the compiler is asked to transfer, between source files, semantic knowledge acquired during the compilation process. Why is that? How is it done? What can you do with that knowledge from the compiler? Come and find out.