A very good point though! What if a "set" was nothing more than a enum whose
values are shifted, rather than incremented. The type of the "set" would as
big as needed for the set's values to fit:
set StreamFeature { ISREADABLE, ISWRITABLE, ISSEEKABLE };
// could be identical to:
enum StreamFeature { ISREADABLE = 1, ISWRITABLE = 2, ISSEEKABLE = 4 };
L.