- logTypeAttrvoid logTypeAttr(TypeAttr attr, uint indent, uint extra_space, string func, uint line) 
- Pretty loggning with indentation. 
- logTypeResultvoid logTypeResult(TypeResult result, uint indent, string func, uint line) 
- Pretty loggning with indentation. 
- logTypeResultvoid logTypeResult(TypeResults results, uint indent, string func, uint line) 
- Pretty loggning with indentation. 
- logTypeResultvoid logTypeResult(Nullable!TypeResults results, uint indent, string func, uint line) 
- Pretty loggning with indentation. 
- makeSimpleTypeKindAttr makeSimple(string txt, TypeAttr attr) 
- Undocumented in source. Be warned that the author may not have intended to support it. 
- mergeExtraTypeResults mergeExtra(TypeResults lhs, TypeResults rhs) 
- splitTypeIdauto  splitTypeId(TypeKind t, uint indent) 
- Split the TypeId from the formatter in a Left/Right. 
- splitTypeIdauto  splitTypeId(TypeKind t) 
- Split the TypeId from the formatter in a Left/Right. 
- toStringDeclauto  toStringDecl(TypeKind t, TypeAttr ta, string id) 
- auto  toStringDecl(TypeKind t, TypeAttr ta) 
- Combine type attributes, kind and identifier to produce a declaration.
TODO reconsider the function name.
 - Don't encode the return type in the name (?)
 - Is it really a Decl-> declaration? Maybe more appropriate would be
   "merge", of type and attributes? 
- toStringDeclauto  toStringDecl(T value, string id) 
- auto  toStringDecl(T value) 
- if a type can be cast to a TypeKindAttr.