docs: def disassemble(self):
          """
          disassembles the underlying bytecode instructions and generates a
          sequence of (offset, code, args) tuples
          """
  
          dis = self._dis_code
          if dis is None:
              dis = tuple(disassemble(self.code))
              self._dis_code = dis
  
          return dis