reifiedtyper
Reifiedtyper is a concept in type theory and programming language design that refers to the ability to preserve and access type information at runtime. In many statically typed languages, generics and polymorphic functions are compiled with type erasure, which removes concrete type parameters from the generated code. Reifiedtyper mechanisms counteract this by “reifying” the type, making it available for reflection, dynamic dispatch, or runtime type checks.
The term is most prominently used in languages that provide advanced type reflection features. Scala, for example,
Reifiedtyper concepts also appear in functional languages like F# where the `System.Type` class can be used
Designing a reifiedtyper system involves careful handling of performance overhead, as maintaining type metadata can increase