-
Notifications
You must be signed in to change notification settings - Fork 64
Description
First, thanks for the wonderful package and the very nice documentation that really helped me understanding how to derive rules and implement them.
From my user perspective I just wanted to point out some things which I feel were missing (or that I missed):
-
Where are the rules are used:
With a naive optimism I automatically thought that rrule would also be used in ReverseDiff and frule in ForwardDiff (which is not the case and probably won't be the case). It would be nice to warn that the rules are mostly working with Zygote for now
-
How to work with
struct:
Although there is a good documentation on Composite it would be cool to have some concrete examples on how to use it. For example, should a pullback return a Composite or a NamedTuple for a struct argument? Also maybe warn that by default the output from a constructor will be a Composite etc...
-
Constructor rules:
Similarly to the previous point, I saw a lot of confusion on how to properly define rrule for constructors and objects acting as functions. Having a small example explaining that for a constructor ::Type{Object} should be used, or directly ::Object would make it more clear