I agree. We should settle on a library of data structures for common situations like this or everyone will end up rolling their own. Then we could replace things like `garray.c` and `hashtab.c` as well.