This document discusses different types of substitutability in C++ that provide a useful way to structure a system's meaning. It identifies several types of substitutability based on C++ mechanisms: conversions, overloading, derivation, mutability, and genericity. These types capture various forms of polymorphism in C++ and draw together many language features to make sense of mechanisms and establish practices for working with the language.