anchor.diff:      static member reverseReset (tensor:Tensor) = tensor.reverseReset(true)
       static member reversePush (value:Tensor) (tensor:Tensor) = tensor.reversePush(value)
       static member reverse (value:Tensor) (tensor:Tensor) = tensor.reverse(value)
  -    static member evalForwardDiff f x v = x |> DiffSharp.forwardDiff (GlobalNestingLevel.Next()) v |> f |> DiffSharp.primalDerivative
  +    static member evalForwardDiff f x v = x |> dsharp.forwardDiff (GlobalNestingLevel.Next()) v |> f |> dsharp.primalDerivative
       static member evalReverseDiff f x =
  -        let x = x |> DiffSharp.reverseDiff (GlobalNestingLevel.Next())
  +        let x = x |> dsharp.reverseDiff (GlobalNestingLevel.Next())
           let fx = f x
  -        let r = fun v -> fx |> DiffSharp.reverse v; x.derivative
  +        let r = fun v -> fx |> dsharp.reverse v; x.derivative
           fx.primal, r
       static member evalForwardDiffs (f:Tensor->Tensor) x (v:Tensor[]) =
           let n = v.Length
  
positive.code:         else
              let mutable x = x
              for i in 0..n-1 do
                  x <- x |> DiffSharp.forwardDiff (GlobalNestingLevel.Next()) v.[i]
              let mutable fx = f x
              [|for _ in 0..n-1 do
                  let d = fx.derivativeDeep
  
negative.code: 
  /// Tensor operations
  
  type dsharp =
      static member tensor(value:obj, ?dtype:Dtype, ?device:Device, ?backend:Backend) = Tensor.create(value=value, ?dtype=dtype, ?device=device, ?backend=backend)
      static member seed(?seed:int) = BackendStatics.Seed(?seed=seed)
      static member isTensor(value:obj) = value :? Tensor
  