Because ```Buffer``` didn't cut it, I'm not sure of its status today. I mostly wanted an optimised struct so that I could access its fields as needed, not a data structure that makes it hard to (it would take extra casting and many more dereferences). The functions built on top of these structs are only extra functionality, not a strict interface that you should follow.

I guess in the end I could use Buffer instead of ```struct string```, and Seq instead of ```struct strlist``` but it would be slower, uglier (casts and calls all over the place) and take more time because I would need to build ACL-checking specific functionality onto these very generic interfaces.

Finally it was hard to find them, but when I did find a data structure that I needed in libutils and was fairly confident about it, I used it (StringMap).