Szelethus added a comment. I guess `getAs` and `castAs` methods could join the party too. I'm evaluating plenty of results on LLVM, and those seem to be in the same problem category. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D64374/new/ https://reviews.llvm.org/D64374