Charpred

Holds if this type is constant and only contains constant types, excluding
the type itself. It is implied by Type.isDeeplyConst() and is just used to
implement that predicate.
For example, const char *const is deeply constant and deeply constant below,
but const char * is only deeply constant below (the pointer can be changed,
but not the underlying char). char *const is neither (it is just const).