foldl(Empty(), insert, l1 ++ l2) == foldl(Empty(), insert, l1).
foldl(Empty(), insert, l1 ++ l2) == foldl(Empty(), insert, l1).merge(foldl(Empty(), insert, l2))
h1 ~ h2 implies h1.
h1 ~ h2 implies h1.deleteMin ~ h2.deleteMin
h1 ~ h2 implies h1.
h1 ~ h2 implies h1.findMin == h2.findMin
h.
h.insert(e1).insert(e2) ~ h.insert(e2).insert(e1)
h1 ~ h2 implies h1.
h1 ~ h2 implies h1.insert(e) ~ h2.insert(e)
(h1.
(h1.merge(h2)).merge(h3) ~ h1.merge(h2.merge(h3))
h1.
h1.merge(h2) ~ h2.merge(h1)
h1 ~ h3 && h1 ~ h4 implies h1.
h1 ~ h3 && h1 ~ h4 implies h1.merge(h2) ~ h3.merge(h4)
h1 ~ h2 implies h1.
h1 ~ h2 implies h1.size == h2.size
LeftistHeap as List