Carbon's Checked Generics: Definition-Time Checking vs C++ Template Chaos
Carbon checks generics at definition time against interfaces, not per instantiation like C++ templates. This yields earlier errors, separate compilation, and clearer diagnostics, but sacrifices template metaprogramming and specialization. C++ interop requires explicit bridging.