let merge m1 m2 =
match m1,m2 with
| T.Spare, T.Spare -> m1
| T.Spare, T.Cav _ -> if is_bottom m2 then m1 else m2
| T.Cav _, T.Spare -> if is_bottom m1 then m2 else m1
| T.Cav d1, T.Cav d2 -> mk_mark (D.combine d1 d2)