Every so often I've wanted a SET metatype in Postgres.
We do have bit fields, which can be used as sets with a little work, and this is how MySQL does it's SET types as I understand it. But what if you want a set of enums (our enums can have very large lists of values), or a set of text values, or of integers? Bit fields won't work for these - we would need some sort of sparse representation.
One obvious way would be to store the set as a one-dimensional array, kept in sorted order for efficient searching. For text values, we could probably use some smart form of sorting such as is used by jsonb and hstore to store object keys, to reduce the need for string comparisons.
Obviously, I have done no work on this, but it seems like it would be a worthwhile project.
In the meantime, you can use hstore more or less in this way. Just treat it as a mapping from whatever values you have to 1. It's a bit of a hack, but it should work. You'll just need to cast your values to text.