public QualifiedName rest() {
   if (isSimpleName()) {
     throw new UnsupportedOperationException();
   }
   if (base.isSimpleName()) {
     return new QualifiedName(name);
   } else {
     return new QualifiedName(base.rest(), name);
   }
 }