: 
template<typename T> concept A = T::value || true;
template<typename U> concept B = A<U*>;
template<typename V> concept C = B<V&>;
 
Normalization of 
B's 
constraint-expression
is valid and results in
T::value (with the mapping 
T↦U*)
∨
true (with an empty mapping),
despite the expression 
T::value being ill-formed
for a pointer type 
T. Normalization of 
C's 
constraint-expression
results in the program being ill-formed,
because it would form the invalid type 
V&*
in the parameter mapping. — 
end example