docs: def derive(self):
          '''Compute the formal derivative of the polynomial: sum(i*coeff[i] x^(i-1))'''
          #res = [0] * (len(self)-1) # pre-allocate the list, it will be one item shorter because the constant coefficient (x^0) will be removed
          #for i in _range(2, len(self)+1): # start at 2 to skip the first coeff which is useless since it's a constant (x^0) so we +1, and because we work in reverse (lower coefficients are on the right) so +1 again
              #res[-(i-1)] = (i-1) * self[-i] # self[-i] == coeff[i] and i-1 is the x exponent (eg: x^1, x^2, x^3, etc.)
          #return Polynomial(res)
  
          # One liner way to do it (also a bit faster too)
          #return Polynomial( [(i-1) * self[-i] for i in _range(2, len(self)+1)][::-1] )
          # Another faster version
          L = len(self)-1
          return Polynomial( [(L-i) * self[i] for i in _range(0, len(self)-1)] )