> Well, concepts were newly introduced (Dec 2020), the draft paper had 380+ > pages, so give C++ a try, the language will mature soon.
If you read the code at the end of the message you replied to, you'll see a translation into C++ 20 which compiles with both clang and g++ (--std==c++20), and demonstrates the problem. If you're not going to file the issue with concepts, I guess I will. As for the rest, currently even though `type Foo = int or string` is valid Nim, it's a lie, Foo isn't a real type, much less a sum or union type. As [the manual](https://nim-lang.org/docs/manual.html#generics-type-classes) documents Whilst the syntax of type classes appears to resemble that of ADTs/algebraic data types in ML-like languages, it should be understood that type classes are static constraints to be enforced at type instantiations. Type classes are not really types in themselves but are instead a system of providing generic "checks" that ultimately resolve to some singular type. Run