LGTM with fixes applied and CI passing. Thanks!
This needs a license. What I generally do is copy-paste an existing header and replace the contents. That makes sure I get the right boilerplate (not that we shouldn't work on reducing that boilerplate if possible, especially the pragma stuff).
It would make sense to hoist that out of this file and into <iterator>. Same for incrementable traits.
Ok, this is non-blocking anyway, feel free to leave as-is. Actually when we only support compilers that support concepts, this will become #if C++ >= 20, which we should leave in this header. So it makes sense to keep.
I made a mistake: putting them in this header will create circular dependencies, since iterator_traits needs these exposition-only concepts and __iterator_traits/concepts.h will depends on iterator_traits. They, along with the cpp17-*-iterator concepts should either be in __iterator/iterator_traits.h.