I think this abbreviation is not so evil, because this type is used within one display(just below).
But uniformed convention will be better.
I prefer `core::nearest_neighbor::nearest_neighbor_base_ptr` declared at `nearest_neighbor_base.hpp`.