protected String toString(Type type) {
   return (printer != null) ? printer.visit(type, locale) : String.valueOf(type);
 }
 protected String toString(Symbol sym) {
   return (printer != null) ? printer.visit(sym, locale) : String.valueOf(sym);
 }