docs: public T visitUnaryExpression(UnaryExpression elm, C context) {
          if (elm instanceof Abs) return visitAbs((Abs)elm, context);
          else if (elm instanceof As) return visitAs((As)elm, context);
          else if (elm instanceof Ceiling) return visitCeiling((Ceiling)elm, context);
          else if (elm instanceof Convert) return visitConvert((Convert)elm, context);
          else if (elm instanceof DateFrom) return visitDateFrom((DateFrom)elm, context);
          else if (elm instanceof DateTimeComponentFrom) return visitDateTimeComponentFrom((DateTimeComponentFrom)elm, context);
          else if (elm instanceof Distinct) return visitDistinct((Distinct)elm, context);
          else if (elm instanceof End) return visitEnd((End)elm, context);
          else if (elm instanceof Exists) return visitExists((Exists)elm, context);
          else if (elm instanceof Exp) return visitExp((Exp)elm, context);
          else if (elm instanceof Flatten) return visitFlatten((Flatten)elm, context);
          else if (elm instanceof Floor) return visitFloor((Floor)elm, context);
          else if (elm instanceof Is) return visitIs((Is)elm, context);
          else if (elm instanceof IsFalse) return visitIsFalse((IsFalse)elm, context);
          else if (elm instanceof IsNull) return visitIsNull((IsNull)elm, context);
          else if (elm instanceof IsTrue) return visitIsTrue((IsTrue)elm, context);
          else if (elm instanceof Length) return visitLength((Length)elm, context);
          else if (elm instanceof Ln) return visitLn((Ln)elm, context);
          else if (elm instanceof Lower) return visitLower((Lower)elm, context);
          else if (elm instanceof Negate) return visitNegate((Negate)elm, context);
          else if (elm instanceof Not) return visitNot((Not)elm, context);
          else if (elm instanceof Predecessor) return visitPredecessor((Predecessor)elm, context);
          else if (elm instanceof SingletonFrom) return visitSingletonFrom((SingletonFrom)elm, context);
          else if (elm instanceof Start) return visitStart((Start)elm, context);
          else if (elm instanceof Successor) return visitSuccessor((Successor)elm, context);
          else if (elm instanceof TimeFrom) return visitTimeFrom((TimeFrom)elm, context);
          else if (elm instanceof TimezoneFrom) return visitTimezoneFrom((TimezoneFrom)elm, context);
          else if (elm instanceof ToBoolean) return visitToBoolean((ToBoolean)elm, context);
          else if (elm instanceof ToConcept) return visitToConcept((ToConcept)elm, context);
          else if (elm instanceof ToDateTime) return visitToDateTime((ToDateTime)elm, context);
          else if (elm instanceof ToDecimal) return visitToDecimal((ToDecimal)elm, context);
          else if (elm instanceof ToInteger) return visitToInteger((ToInteger)elm, context);
          else if (elm instanceof ToQuantity) return visitToQuantity((ToQuantity)elm, context);
          else if (elm instanceof ToString) return visitToString((ToString)elm, context);
          else if (elm instanceof ToTime) return visitToTime((ToTime)elm, context);
          else if (elm instanceof Truncate) return visitTruncate((Truncate)elm, context);
          else if (elm instanceof Upper) return visitUpper((Upper)elm, context);
          else if (elm instanceof Width) return visitWidth((Width)elm, context);
          else return null;
      }