| (r1, _) :: t1, (r2, _) :: _ when r1 < r2 -> mql_intersect t1 s2
| (r1, _) :: _, (r2, _) :: t2 when r1 > r2 -> mql_intersect s1 t2
| (r1, g1) :: t1, (_, g2) :: t2 ->
| (r1, _) :: t1, (r2, _) :: _ when r1 < r2 -> mql_intersect t1 s2
| (r1, _) :: _, (r2, _) :: t2 when r1 > r2 -> mql_intersect s1 t2
| (r1, g1) :: t1, (_, g2) :: t2 ->