Topic summary
Type erasure

In programming languages, type erasure is the process of translating a program from a representation containing type information to one in which some or all of that information is omitted. Operational semantics not requiring programs to be accompanied by types are named type-erasure semantics, in contrast with type-passing semantics. Type-erasure semantics is an abstraction principle, ensuring that the run-time execution of a program doesn't depend on type information. In the context of generic programming, the opposite of type erasure is named reification.