jyknight added a comment. I'm not sure this factoring actually makes sense: Support.h looks like it's intended to be exposing functionality in the lib/Support/*.cpp files, right? So putting these types into its header file would be misplacing them. http://reviews.llvm.org/D13426