(chibi iset) and the Chicken iset egg use a fairly
simple but effective approach to compact isets,
which is a binary tree whose leaves can be either
bitsets or ranges.
As an example, char-set:letter (using Unicode 13.0)
is comprised of 132875 characters. In (chibi iset)
this takes up 3120 bytes of memory, whereas the
current SRFI 217 sample impl requires 5314960 bytes.
It might be worth noting this technique.
--
Alex