| MQMConclusion (* main conclusion *)
| MQConclusion (* inner conclusion *)
+type mqorder =
+ | MQAsc
+ | MQDesc
+
type mqbool =
| MQTrue
| MQFalse
| MQOr of mqbool * mqbool
| MQNot of mqbool
| 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. *)
-type mqorder =
- | MQAsc
- | MQDesc
-
-type mqlist =
+and mqlist =
| MQSelect of mqrvar * mqlist * mqbool (* rvar, list, boolean *)
| MQUse of mqlist * mqsvar (* list, Position attribute *)
| MQUsedBy of mqlist * mqsvar (* list, Position attribute *)
| MQDiff of mqlist * mqlist (* *)
| MQIntersect of mqlist * mqlist (* *)
| MQSortedBy of mqlist * mqorder * mqfunc (* *)
+ | MQRVarOccur of mqrvar
type mquery =
| MQList of mqlist