"In 1976, still back in the USSR, I got a very serious case of food poisoning from eating raw fish. While in the hospital, in the state of delirium, I suddenly realized that the ability to add numbers in parallel depends on the fact that addition is associative. (So, putting it simply, STL is the result of a bacterial infection.) In other words, I realized that a parallel reduction algorithm is associated with a semigroup structure type. That is the fundamental point: algorithms are defined on algebraic structures."<p>This has got to be one of the best outcomes of sickness in computing history!<p>I <i>love</i> STL, it's the major reason I stick with C++ rather than switching to Java et al. It is extremely well thought-out and most algorithms have clear complexity guarantees. I think it forms an example that libraries in other languages should strive for.