def rotate_left(self, amount):
        """Left rotate by constant amount.

        If :py:`amount < 0`, performs the same operation as :py:`self.rotate_right(-amount)`.

        Returns
        -------
        :class:`Value`, :py:`unsigned(len(self))`, :ref:`assignable <lang-assignable>`
        """
        if not isinstance(amount, int):
            raise TypeError(f"Rotate amount must be an integer, not {amount!r}")
        if len(self) != 0:
            amount %= len(self)
        return Cat(self[-amount:], self[:-amount]) # meow :3
Left rotate by constant amount.

        If :py:`amount < 0`, performs the same operation as :py:`self.rotate_right(-amount)`.

        Returns
        -------
        :class:`Value`, :py:`unsigned(len(self))`, :ref:`assignable <lang-assignable>`
        
amaranth/hdl/_ast.py