std::identity -> detail::identity