https://github.com/gysit commented: Looks good to me. Can you try if a PointerUnion works for the BoundType? If it is also cumbersome to use then we can go with the current solution. https://github.com/llvm/llvm-project/pull/93689