Nesting functions that do AD exposes "forall" types for the branding; these cannot be inferred by the type system, and are tedious and error-prone.