template<class IntType>
constexpr byte& operator<=(byte& b, IntType shift) noexcept;
template<class IntType>
constexpr byte operator<(byte b, IntType shift) noexcept;
template<class IntType>
constexpr byte& operator>=(byte& b, IntType shift) noexcept;
template<class IntType>
constexpr byte operator>(byte b, IntType shift) noexcept;
constexpr byte& operator|=(byte& l, byte r) noexcept;
constexpr byte operator|(byte l, byte r) noexcept;
constexpr byte& operator&=(byte& l, byte r) noexcept;
constexpr byte operator&(byte l, byte r) noexcept;
constexpr byte& operator^=(byte& l, byte r) noexcept;
constexpr byte operator^(byte l, byte r) noexcept;