Some pretty… interesting… naming conventions. One of the types is called:<p><pre><code> mse::rsv::TXSLTACSSSXSTERandomAccessIterator
</code></pre>
What to make of this? The readme provides this guidance:<p>> The "CSSSXSTE" part of the typenames stands for "Contiguous Sequence, Static Structure, XSLTA, Type-Erased".<p>But it nowhere defines XSLTA. With some help from ChatGPT, I can guess that "XS" stands for "execution scope" (since the readme talks a lot about execution scopes), and "LTA" probably stands for "lifetime annotated" (since one part says that "rsv::TXSLTAOwnerPointer<> is a 'lifetime annotated' version of TXScopeOwnerPointer<>").<p>But what about the namespaces, "mse" and "rsv"? I can find nothing to explain what those might stand for.<p>Anyway.<p>I really like the idea of this project. There are contexts where I cannot use Rust and would love to have a way equivalent safety guarantees in C++. Even at the cost of rewriting the code. And even at the cost of ugly code, because there will be some necessary ugliness when retrofitting lifetimes into C++'s existing syntax and semantics.<p>But "TXSLTACSSSXSTERandomAccessIterator" is <i>unnecessary</i> ugliness. There are better ways to get ideas across than acronym soup.<p>There are some other practical issues with the project, such as inconsistent licensing annotations, and the fact that it seems to depend on specific Clang versions (and thus will probably bitrot if it stops being maintained).<p>Still, it seems promising and I may use it someday.