https://github.com/ayalz approved this pull request. OK, this looks fine to me, the alternatives of inheriting Type rather than holding it as a field can be explored as follow-up. Adding several minor comments. https://github.com/llvm/llvm-project/pull/129706