I was wondering why you don't pass "true" to toPrettyChars, but I was confusing types and symbols here. 

Having identical named functions with slightly different semantics is not optimal, maybe the new member in Type should be called toCharsFullyQualified (and the member "pretty" in HdrGenState renamed accordingly.