Set is a generic type that can store any type that conforms to the Hashable, OptionSet is a protocol that can be adopted by custom types that store a fixed-size sequence of bits.