ImplicitDifferentiation.jl is a package for automatic differentiation of functions defined implicitly, i.e., forward mappings. Those for which automatic differentiation fails. Reasons can vary depending on your backend, but the most common include calls to external solvers, mutating operations or type restrictions. Those for which automatic differentiation is very slow. A common example is iterative procedures like fixed point equations or optimization algorithms.