docs: def statement(self, i):
          """Return the *i*-th statement of this block.
  
              Behaves as if the *then* and *else* branches were
              concatenated, for indexing purposes.
          """
      # ----- This code is just to avoid creating a new list and
      #       returning a custom exception message.
          o = len(self.body)
          n = o + len(self.else_body)
          if i >= 0 and i < n:
              if i < o:
                  return self.body.statement(i)
              return self.else_body.statement(i - o)
          elif i < 0 and i >= -n:
              if i >= o - n:
                  return self.else_body.statement(i)
              return self.body.statement(i - o + n)
          raise IndexError('statement index out of range')