code: public T visitElement(Element elm, C context) {
          if (elm instanceof AliasedQuerySource) return visitAliasedQuerySource((AliasedQuerySource)elm, context);
          else if (elm instanceof CaseItem) return visitCaseItem((CaseItem)elm, context);
          else if (elm instanceof Expression) return visitExpression((Expression)elm, context);
          else if (elm instanceof LetClause) return visitLetClause((LetClause)elm, context);
          else if (elm instanceof OperandDef) return visitOperandDef((OperandDef)elm, context);
          else if (elm instanceof ParameterDef) return visitParameterDef((ParameterDef)elm, context);
          else if (elm instanceof ReturnClause) return visitReturnClause((ReturnClause)elm, context);
          else if (elm instanceof SortByItem) return visitSortByItem((SortByItem)elm, context);
          else if (elm instanceof TupleElementDefinition) return visitTupleElementDefinition((TupleElementDefinition)elm, context);
          else if (elm instanceof TypeSpecifier) return visitTypeSpecifier((TypeSpecifier)elm, context);
          else return null;
      }
docs: Visit an Element in an ELM tree. This method will be called for
  every node in the tree that is a descendant of the Element type.
  
  @param elm     the ELM tree
  @param context the context passed to the visitor
  @return the visitor result