set(...) { return (x | (1U << pos)); }
reset(...) { return (x & (~(1U << pos))); }
inverse(..) { return (x ^ (1U << pos)); }