docs: def block_perms(self):
          """If the circuit is reducible into permutations within subranges of
          the full range of channels, this yields a tuple with the internal
          permutations for each such block.
  
          :type: tuple
          """
          if not self._block_perms:
              self._block_perms = permutation_to_block_permutations(
                  self.permutation)
          return self._block_perms