What are the top use cases of the EnumerableSet library?

Hi there,

I'm a former contributor to the Roaring bitmap compression algorithm ecosystem (mostly applied to database indexes, such as in Druid), and a recent Solidity developer. As such, I started to wonder if compressed sets had a space in the context of the EVM.

I believe there's a research opportunity in this field, but before going deeper into this topic, I'd like to know what are the real-world applications of enumerable sets, in order not to go down the "solution in search of a problem" rabbit hole.

This idea comes from the fact that Roaring was designed with popular processor architectures in mind (x86-64, IA64, AMD64, etc.), in order to optimize its compression ratio. It stores bitmap set entries as 32-bit integers in a space-efficient index. A compressed set for the EVM would need to have different design principles and goals since it would be using 256-bit words and optimizing for EVM opcodes (gas efficiency), not for storage.

Please let me know your thoughts on this matter, and what are the current use cases for the EnumerableSet library.