Generics and inference

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.