As a follow up of https://reviews.llvm.org/D99989#inline-953343, I'm now
storing std::string instead of char *. I know it might never break as char *,
but if it does, chasing that bug might be dauting.
I've been reading https://llvm.org/devmtg/2014-04/PDFs/LightningTalks/data_structure_llvm.pdf and it seems that it's not more performant speed-wise. I imagine it's more performance space-wise, but here I mostly care about time.