we worked really hard to add type safety to runtime reflection and eval. two examples of things we enable are:
compile code at runtime and get back a typed function with a checked signature.
build a class at runtime, unreflect it, and use that same runtime type as a compile time generic parameter.