Why this restriction? I've never heard of a `length` member function that couldn't be used to extend a buffer.

Also, is `bufLen` even publicly known? I saw no `capacity` member function. Speaking of which, a `capacity`/`reserve` duo might be called for, no?