Yes concepts in c++ have the same design goal as in Nim. Even though concepts
can be declared as a type, they are much more like a compatibility guarantee.
To be honest, Generics in Nim (templates in c++) work already pretty well
without concepts, but in case someone puts a type into a generic function,
concepts will give you nice looking errors. If you know c++, template error
messages can become quite complex and basically unreadable. Concepts should
avoid it. As a pure user, you propably don't need to care about concepts, it's
just important for library maintainer.