anchor.diff:                  | DF(pp,pt,pi), DF(tp,tt,ti) when pi = ti -> DF(DF(pp,pt,pi), DF(tp,tt,pi), i)
                   | DF(pp,pt,pi), DF(tp,_ ,ti) when pi > ti -> DF(DF(pp,pt,pi), DF(tp,D 0.,pi), i)
       /// Make D, with primal value `p` and tangent value `t`. A new tag will be attached using the global tagger.
  -    let inline makeDFPT p t = makeDFIPT GlobalTagger.Next p t
  +    let inline makeDFpt p t = makeDFipt GlobalTagger.Next p t
       /// Make D, with primal tag `i` and primal value `p`, and tangent 1.
  -    let inline makeDFIP1 i p =
  +    let inline makeDFip1 i p =
           match box p with
           | :? float as p -> DF(D p, D 1., i)
           | :? D as p ->
  
positive.code:     /// Original value and gradient-vector product (directional derivative) of a vector-to-scalar function `f`, at point `x`, along vector `v`
      let inline gradv' f x v =
          let i = GlobalTagger.Next
          Array.map2 (makeDFIPT i) x v |> f |> tuple
  
      /// Gradient-vector product (directional derivative) of a vector-to-scalar function `f`, at point `x`, along vector `v`
      let inline gradv f x v =
  
negative.code:     /// Original value and Jacobian-vector product of a vector-to-vector function `f`, at point `x`, along vector `v`
      let inline jacobianv' f x v =
          let i = GlobalTagger.Next
          Array.map2 (makeDFipt i) x v |> f |> Array.map tuple |> Array.unzip
  
      /// Jacobian-vector product of a vector-to-vector function `f`, at point `x`, along vector `v`
      let inline jacobianv f x v =
  