anchor.diff:                      arr.[i,j,k,m] <- f.Invoke(i, j, k, m)
               arr
   
  -
           [<CompiledName("Get")>]
           let get (array: 'T[,,,]) index1 index2 index3 index4 = array.[index1,index2,index3,index4]
    
  
positive.code:     module Array4D =
  
          [<CompiledName("Length1")>]
          let length1 (array: 'T[,,,]) =  (# "ldlen.multi 4 0" array : int #)  
   
          [<CompiledName("Length2")>]
          let length2 (array: 'T[,,,]) =  (# "ldlen.multi 4 1" array : int #)  
   
          [<CompiledName("Length3")>]
          let length3 (array: 'T[,,,]) =  (# "ldlen.multi 4 2" array : int #)  
   
          [<CompiledName("Length4")>]
          let length4 (array: 'T[,,,]) =  (# "ldlen.multi 4 3" array : int #)  
   
          [<CompiledName("ZeroCreate")>]
          let zeroCreate length1 length2 length3 length4 = 
  
negative.code:     module Array3D =
  
          let inline checkNonNull argName arg = 
              if isNull arg then
                  nullArg argName
  
          [<CompiledName("Length1")>]
          let length1 (array: 'T[,,]) = (# "ldlen.multi 3 0" array : int #)
   
          [<CompiledName("Length2")>]
          let length2 (array: 'T[,,]) = (# "ldlen.multi 3 1" array : int #)
   
          [<CompiledName("Length3")>]
          let length3 (array: 'T[,,]) = (# "ldlen.multi 3 2" array : int #)
   
          [<CompiledName("Get")>]
          let get (array: 'T[,,]) index1 index2 index3 = array.[index1,index2,index3]
  