I wanted to have bake my cake and eat it too with frosting on top, by implementing a protocol and struct such that:
* declare and assign a var of a new type with a UInt8 value
* pluck out bit values from that var
* while enforcing types and constraints
* with as little ceremony as possible