let equal o1 o2 = match o1, o2 with
| Well, Well | Unknown, Unknown -> true
| Leaf o1, Leaf o2 | Arith o1, Arith o2 | Merge o1, Merge o2
| Misalign_read o1, Misalign_read o2 ->
LocationSetLattice.equal o1 o2
| Misalign_read _, _ -> false
| _, Misalign_read _ -> false
| Leaf _, _ -> false
| _, Leaf _ -> false
| Merge _, _ -> false
| _, Merge _ -> false
| Arith _, _ -> false
| _, Arith _ -> false
| _, Well | Well, _ -> false