Say I have some template <typename T> struct K { ... };
I'd like to write a concept that accepts any type K<T> and rejects any type that is not "wrapped" by K.
Initially I was thinking template <typename T, V> concept Wrapped = std::same_as<T, K<V>> but I don't think template evaluator is smart enough to provide V automatically :(