template<class T> constexpr T bit_reverse(T x) noexcept;
template<class T> constexpr T bit_repeat(T x, int l);
template<class T> constexpr T bit_compress(T x, T m) noexcept;
template<class T> constexpr T bit_expand(T x, T m) noexcept;