public String argString() {
        return StringUtils.join(mapToList(args(), arg -> {
            if (arg instanceof TreeNode) {
                if (containsChild((TreeNode) arg)) {
                    return null;
                }
                return ((TreeNode) arg).simpleString();
            }
            if (arg instanceof Collection) {
                if (childSet.get().containsAll((Collection) arg)) {
                    return null;
                }
                if (arg instanceof List) {
                    return "[" + StringUtils.join((List) arg, ", ") + "]";
                }
                if (arg instanceof Set) {
                    return "{" + StringUtils.join((Set) arg, ", ") + "}";
                }
            }
            return arg;
        }, /*ignoreNull*/true), ", ");
    }
Returns a string representing the arguments to this node, minus any children
indexr-query-opt/src/main/java/io/indexr/query/TreeNode.java