anchor.diff:      let inline ofArray2D a = DM.ofArray2D(a)
       let inline ofArray m a = DM.ofArray(m, a)
       let inline ofRows s = DM.ofRows(s)
  -    let inline transpose (m:DM) = m.Transpose()
  +    let inline transpose (m:DM) = DM.Transpose(m)
       let inline ofCols (s:seq<DV>) = s |> ofRows |> transpose
       let inline toRows (m:DM) = m.GetRows()
       let inline toCols (m:DM) = m.GetCols()
  
positive.code:         | DMF(ap, at, ai)             -> let cp = fd(ap) in DMF(cp, df(cp, ap, at), ai)
          | DMR(ap,_,_,_,ai)            -> let cp = fd(ap) in DMR(cp, ref (DM.ZeroMN cp.Rows cp.Cols), r(a), ref 0u, ai)
  
      static member inline Op_DM_DM_DM (a, b, ff, fd, df_da, df_db, df_dab, r_d_d, r_d_c, r_c_d) =
          match a with
          | DM(ap) ->
  
negative.code:         | DV(ap)                      -> DV(ff(ap))
          | DVF(ap, at, ai)             -> let cp = fd(ap) in DVF(cp, df(cp, ap, at), ai)
          | DVR(ap,_,_,_,ai)            -> let cp = fd(ap) in DVR(cp, ref (DV.ZeroN cp.Length), r(a), ref 0u, ai)
  
      static member inline Op_DV_D (a, ff, fd, df, r) =
          match a with
          | DV(ap)                      -> D(ff(ap))
          | DVF(ap, at, ai)             -> let cp = fd(ap) in DF(cp, df(cp, ap, at), ai)
          | DVR(ap,_,_,_,ai)            -> let cp = fd(ap) in DR(cp, ref (D 0.), r(a), ref 0u, ai)
  
      static member inline Op_DV_DV_DV (a, b, ff, fd, df_da, df_db, df_dab, r_d_d, r_d_c, r_c_d) =
          match a with
  