Compile-time sequences of types are one of the basic concepts of C++ template metaprogramming. Differences in types of objects being manipulated is the most common point of variability of similar, but not identical designs, and these are a direct target for metaprogramming. Templates were originally designed to address this exact problem. However, without predefined mechanisms for representing and manipulating *sequences* of types as opposed to standalone template parameters, high-level template metaprogramming is severely limited in its capabitilies. The MPL recognizes the importance of type sequences as a fundamental building block of many higher-level metaprogramming designs by providing us with a conceptual framework for formal reasoning and understanding of sequence properties, guarantees and characteristics, as well as a first-class implementation of that framework |--| a wealth of tools for concise, convenient, conceptually precise and efficient sequence manipulation.