So as I understand it, ListBuffers leverage the hidden mutable state of lists to permit O(1) operations for stuff like appending, prepending taking the size of a list etc.
However, as far as I can tell, ++= is not specialised for a ListBuffer? ++= is O(n) in the size of the first collection usually, but surely if we append two list buffers we can do it in O(1) time;
b ++= c = b.last.t1 = c.start
with obviously the extra cases for empty lists etc. Is there any reason why this isn’t done in the STL at the moment?