Yes, it has mutation and some allocations too. It is type stable and works with ForwardDiff.Dual.
ForwardDiff.Dual