The following code compiles for X, but not for double:
struct X{}; void foo(double); void foo(X); namespace NN { struct A{}; void foo(A) { foo(double{});