Hello all, in my runtime lowlevel IR module I have several type definitions, some of which may turn out to be structurally equivalent. They look like follows %enumeration_ty = type { ; count of enumerators i32, ; enumerators [0 x %enumerator_ty] } %lookupresult_ty = type { ; kind of lookup result i32, i8* } Now when I link this module to the code generation module (where I emit code into), llvm may unify structurally equivalent types and remove arbitrary names (I use Linker::LinkInFile). Let's assume it merges "lookupresult_ty" with a structurally equivalent unnamed type, and decides to remove the "%lookupresult_ty" name from the module's symbol table. How can I access the type that lookupresult_ty was aliased to afterwards? I thought about adding dummy global variables whose type is %lookupresult_ty for retaining a handle to the type, but there must be a more clean way to do this. Thanks for any support!