anchor.diff:              upcast result        
   
       override t.ViewT(shape:int[]) =
  -        if shapeLength t.Shape <> shapeLength shape then invalidOp <| sprintf "Cannot view Tensor of shape %A as shape %A" t.Shape shape
  +        if shapeLength t.Shape <> shapeLength shape then failwithf "Cannot view Tensor of shape %A as shape %A" t.Shape shape
           let result = Array.copy t.Values
           upcast RawTensorFloat32CPU(result, shape)
   
  
positive.code:                 let t = RawTensorFloat32CPU.Zeros(tshape)
                  t.AddTTSlice([|0; 0; padding|], t1) :?> RawTensorFloat32CPU
              else
                  invalidOp <| sprintf "Expecting padding >= 0, received %A" padding
          let batchSize = t1.Shape.[0]
          let inputChannels = t1.Shape.[1]
          let inputLength = t1.Shape.[2]
          let outputChannels = t2.Shape.[0]
          if t2.Shape.[1] <> inputChannels then invalidOp <| sprintf "Input and filters have different num_channels: %A, %A" inputChannels t2.Shape.[1]
          let kernelLength = t2.Shape.[2]
          if kernelLength > inputLength then invalidOp <| sprintf "Expecting kernelLength <= inputLength, received %A, %A" kernelLength inputLength
          let outputLength = inputLength - kernelLength + 1
          let outputShape = [|batchSize; outputChannels; outputLength|]
          let result = RawTensorFloat32CPU.Zeros(outputShape)
  
negative.code: 
      member t.Item
          with get ([<System.ParamArray>] index:int[]) =
              if index.Length <> t.Dim then failwithf "Expecting a %id index" t.Dim
              t.Values.[t.IndexToFlatIndex(index)]
          and set ([<System.ParamArray>] index:int[]) v =
              if index.Length <> t.Dim then failwithf "Expecting a %id index" t.Dim
              t.Values.[t.IndexToFlatIndex(index)] <- v
  
      override t.GetItem(index:int[]) = upcast RawTensorFloat32CPU.Create(t.[index])
      
      override t.GetSlice(bounds:int[,]) =
          // if bounds.GetLength(0) <> t.Dim then failwithf "Expecting %i-by-2 bounds" t.Dim
          // printfn "%A" bounds
          let shape = Array.init (bounds.GetLength(0)) (fun i -> bounds.[i,1] - bounds.[i,0] + 1) |> shapeSqueeze -1
          // printfn "%A" shape
  