Generic functions and constraints, inference sites and NoInfer, conditional and distributive types, infer, mapped types with key remapping, template literal types, the utility types worth knowing, and when a generic is over-engineering.