...which declare DependencyFactory as friend. Yes, we want to encourrage that usage pattern. Problem is, std::is_constructible<X> gives a misleading result in that case. We need to do the instantiation check within the scope of DependencyFactory