> Set.difference(filled_set(20), filled_set(21)) == Set.new([]) #Fails
>
>
This behaviour is expected. == only does structural match.

And this behaviour will also happen in other circumstances. For example,
imagine a hash dict (or a set) has (n - 1) items and when it reaches (n)
items, it needs to do an expansion. If you add a new item and remove this
new item right after, it will expand but not contract, so you have two
dictionaries/sets, with the same amount of items, but different structures.

That's why we need to use Dict.equal? and Set.equal? for comparison.