Convergent Evolution
summary
Argues that C++ concepts and Haskell type classes are convergent solutions, framed by the Curry–Howard correspondence; demonstrates with a concrete example: sort requires a total order and that requirement is an implicit proof carried as an implicit parameter (a record of operations) indexed by type. Shows how Haskell class hierarchies map to C++ template constraints, uses qsort/compare and examples from libraries, and claims this pattern both simplifies templates and actually works as a compiler-time lookup mechanism.
AI-written summary · about
chapters (8)
- 0:00Intro
- 0:58THERE'S NO GREAT INSIGHT HERE
- 1:33PROGRAMS ARE PROOFS
- 2:28WHAT DOES IT MEAN?
- 3:27WHAT IS A CONSTRAINT?
- 4:25SO... WHY CONCEPTS/TYPE CLASSES?
- 6:26DRINK THE KOOL-AID
- 7:41FURTHER READING
related talks
56mConcepts - Evolution or Revolution
01h 01mthe Concepts of concepts
56mEvolving a Nice Trick
01h 05mExpressing Implementation Sameness and Similarity - Polymorphism in Modern C++
01h 09mFunctional Programming in C++
01h 01mthe Concepts of concepts
01h 30mC++ in Constrained Environments
01h 39mKeynote - C++ Metaprogramming: evolution and future direction
