C++ Concepts as GADTs

I'm learning about GADTs in OCaml, and thinking about how one might be able to achieve the same kind of thing in C++. With C++ concepts, I think you can actually get pretty much all the way there. GADTs The canonical example of GADTs seems to be implementing a little embedded DSL, such that the embedded language's typechecking rules are checked by the embedding language's typechecker. Real World…