Since we do `& 1`, only 0 and 1 are possible values, so the error return there can never happen. I made this explicit by manually setting the parity. This is a rebase of Steven's change with a rewrite of `match` to not panic.