| ((8 - n) + # bits) % 8 = 0, # bits = m * 8 + n, n < (8 - n) + # bits, 8 < (8 - n) + # bits, # bits ≤ 8, n < 8, n + 1 < (8 - n) + # bits ⊦ bits = [], n = 0, i2b(bits2int(bits)) ' = bits2bytes(firstn(8, mklist(bits.first, 8 - n) + bits)) + bits2bytes(restn(n, bits)), 8 + # bits = n |
((8 - n) + m * 8 + n) % 8 = 0, # bits = m * 8 + n, n < (8 - n) + m * 8 + n, 8 < (8 - n) + m * 8 + n, m * 8 + n ≤ 8, n < 8, n + 1 < (8 - n) + m * 8 + n ⊦ bits = [], n = 0, i2b(bits2int(bits)) ' = bits2bytes(firstn(8, mklist(bits.first, 8 - n) + bits)) + bits2bytes(restn(n, bits)), 8 + m * 8 + n = n