Returns a BinWord made from concatenating several BinWords,
        in LSB-first order.

def concat(cls, *args):
        """Returns a BinWord made from concatenating several BinWords,
        in LSB-first order.
        """
        width = 0
        val = 0
        for arg in args:
            if not isinstance(arg, BinWord):
                raise TypeError('need BinWord in concat')
            val |= arg._val << width
            width += arg._width
        return cls(width, val)