works correct for mutable list operations
change func import according to the req. of the question
rewrite deriv-sum and -product
rewrite deriv-exponential