Calculus Help

The super chain rule AKA recursive chain rule for higher order compositions of functions. 
We know the chain rule for a composite of two functions:
d(fg) = f'(g(x))g'(x)

But what about the composite of more than two functions?  How would one differentiate
(sin(x^2+1))^3  ?

Here's a formula for repeated applications of the chain rule that I have never learned or seen formulated in any calculus classes anywhere.  Not claiming that I'm the first person to discover it, but I certainly am not borrowing this from elsewhere.

d(fgh) = f'(g(h(x)))g'(h(x))h'(x)

or more compactly,
d(fgh) = f'gh g'h h'

The notation of Leibniz can make it even clearer.
df  = df   dg  dh
dx    dg  dh  dx

This can be extended indefinitely, assuming the domains of our functions allow it:

d(fghijklm)  =    f'ghijklm g'hijklm h'ijklm i'jklm j'klm k'lm l'm m'

Now you can differentiate arbitrarily complex functions.  Try it for


You should get

sec^2[((sin(x^2+1))^3]  3sin(x^2+1)^2 cos(x^2+1) 2x