- | MQIs of mqstring * mqstring (* operands *)
-
-type mqlist =
- | MQSelect of mqrvar * mqlist * mqbool (* rvar, list, boolean *)
- | MQUse of mqlist * mqsvar (* list, Position attribute *)
- | MQUsedBy of mqlist * mqsvar (* list, Position attribute *)
- | MQPattern of mqpattern (* pattern *)
- | MQUnion of mqlist * mqlist (* operands *)
- | MQIntersect of mqlist * mqlist (* operands *)
+ | MQIs of mqstring * mqstring (* operands *)
+ | MQSetEqual of mqlist * mqlist (* the two lists denote the *)
+ (* same set *)
+ | MQSubset of mqlist * mqlist (* the two lists denote two *)
+ (* sets, the first one *)
+ (* subsect of the second one. *)
+
+and mqlist =
+ | MQSelect of mqrvar * mqlist * mqbool (* rvar, list, boolean *)
+ | MQUse of mqlist * mqsvar (* list, Position attribute *)
+ | MQUsedBy of mqlist * mqsvar (* list, Position attribute *)
+ | MQPattern of mqpattern (* pattern *)
+ | MQUnion of mqlist * mqlist (* operands *)
+ | MQIntersect of mqlist * mqlist (* operands *)
+ | MQSortedBy of mqlist * mqorder * mqfunc (* *)
+ | MQRVarOccur of mqrvar
+ | MQDiff of mqlist * mqlist (* *)