Might not work well for some bit-widths, but you can work efficiently with nibbles when using wide types: See also #6