Gray code is a binary numeral system where two successive numbers differ in only one bit.

This module provides an interface to encode/decode

types.
`Bits`

Algorithm: Haupt, R.L. and Haupt, S.E., Practical Genetic Algorithms, Second ed. (2004), 5.4. Gray Codes.