Type Erasure with Merged Concepts in C++
aherrmann.github.io
aherrmann.github.io
As a type theorist, my working definition is "terms which have types inside them are turned into terms which do not have types inside them"; this is a process which occurs after types have been checked/inferred, and before execution. This is crucially not something that programmers do: if you take a polymorphic interface and wrap it up in one that doesn't quantify over types, that wasn't type erasure.
But perhaps I have simply misunderstood the code in this post; I'll admit it's been a while since I have read C++.