If I understand your question, the simple way to make the implicit unique_ptr in notifying_unique_ptr more explicit would be to
not use the notifying_unique_ptr using declaration and write what it represents instead. So instead of writing xnr::notifying_unique_ptr<T, D> you would write std::unique_ptr<T, xnr::notify_ptrs<T, D>>. It is more verbose but that also makes it more
transparent about what it is. It isn't hard to guess what is going on - a deleter called notify_ptrs. It could also be more reassuring in code reviews to see that trusted std::unique_ptr explicitly visible.