This may explain it, hadn't thought of that. The header in question used C++11 atomics and therefore included a new header, which of course, due to the non-existing module system of C++ mean, means my code pulls it in as well. I know of the plans to add a module system to C++, but (1) I'm not sure it would solve this issue and require each header to have a corresponding module (2) and am skeptical of the availability and support in the field. It is much, much easier to just use Rust or OCaml, honestly, and the combination of Rust+OCaml or Rust+Haskell might be the sweet spot.