https://github.com/jmorse approved this pull request. LGTM, and all seems pretty reasonable. Presumably the refactoring / production of a class hierarchy is what @OCHyams is mangling right now? https://github.com/llvm/llvm-project/pull/77912