struct Identity {
template <typename T>
using f = /* .... */;
};
Identity
evaluates to the type it was passed.
f:: T -> T
using T = ml::f<
ml::Identity,
int>;
static_assert(
std::is_same_v<
int, T>);