An type-level bitset
let v1: Cons<Bit1, Cons<Bit0, Bit1>> = Default::default();
let v2: Cons<Bit1, Bit1> = Default::default();
let _: Bit1 = v1 & v2;
let _: Cons<Bit1, Cons<Bit1, Bit1>> = v1 | v2;
let v4: <<Bit0 as ShiftRaising>::Output as Push<Bit1>>::Output = Default::default();