genericset and genericmap can handle non-hashable types as well. At present, it is not sorted in any form except when printing to string form. So, most operations are O(n)
bag is like list but unordered (or think of it as set that allows duplicates.) It is implemented by keeping the list sorted instead of using the insertion order