code: def derivative(self, x):
          
          if self.is_linear:
              return self
          else:
              if self.left.is_linear:
                  left_deriv = self.left
              else:
                  left_deriv = self.left.derivative(self.right(x))
  
              right_deriv = self.right.derivative(x)
  
              return OperatorComp(left_deriv, right_deriv,
                                  self.__tmp)
docs: Return the operator derivative.
  
          The derivative of the operator composition follows the chain
          rule:
  
              ``OperatorComp(left, right).derivative(y) ==
              OperatorComp(left.derivative(right(y)), right.derivative(y))``
  
          Parameters
          ----------
          x : `domain` `element-like`
              Evaluation point of the derivative. Needs to be usable as
              input for the ``right`` operator.