This module provides reverse-mode Automatic Differentiation
implementation using linear time topological sorting after the fact.
For this form of reverse-mode AD we use
StableName to recover
sharing information from the tape to avoid combinatorial explosion,
and thus run asymptotically faster than it could without such sharing
information, but the use of side-effects contained herein is benign.