If they ever are.
Modules can work for leaf libraries, but for libraries used as dependencies by other libraries, you'll encounter a situation where the same translation unit imports boost.lib or "boost/lib.hpp" in one place and then includes "boost/lib/something.hpp" in another, which is probably never going to work correctly.
I suppose it might stand a chance if all the imports are done first, so that the include guard macros are defined. But I think that's not going to work in practice either.
Basically, all Regex consumers also must respect the REGEX_AS_MODULE macro and switch to `import boost.regex`. Repeat per every library.
Modules don't expose macros, so there is no way to signal "this must be used as a module", so you have to find every usage of library X and make sure they are either all modules or all includes. Or at least that anything included doesn't use import: the other way around is fine since the include is hidden within the module. John.