Retroactive derivative registration: register derivatives for functions in other modules.
Previously:
- If module A defines
func foo
, then its derivatives must be in the same module.
With retroactive derivative registration:
- If module A defines
func foo
; - And if module B imports module A and defines
@differentiating(foo) func derivativeFoo
: - Then module C can import modules A and B and differentiate
func foo
(e.g. via differentiation APIs).