let equal m1 m2 =
    m1 == m2 ||
      match m1, m2 with
      | Top (s, a), Top (s', a') ->
          Top_Param.equal s s' && Origin.equal a a'
      | Map m1, Map m2 ->
          M.equal m1 m2
      | _ -> false