20250930 Put quotes around strings that look like numbers in an error message about inappropriate set members. Example: set S ordered by Reals; data; set S := 1 '1' 3 '3' 2 '2'; display S; now gives S contains '1', which is not within Reals; New set expression sort indexing by expr where "indexing" is an indexing set (enclosed in braces) and the expression "expr" may involve dummy variables given in the indexing set. For example, suppose we have set I; var x{I}; set J; and other declarations; after a "solve" we might let J := sort {i in I} by x[i]; In a different context, we might declare set I; param p{I}; set J = sort {i in I} by p[i]; Then J will be recomputed when p changes. The indexing set can have arity > 1, e.g., be a set of pairs. Ties are broken by sorting the indexing elements as in "display": elements are sorted lexicographically, with numbers compared numerically, numbers regarded as less than strings, and strings compared as strings (ASCII collating sequence).