anchor.diff:              if targetIndex1 < targetX0 then invalidArgOutOfRange "targetIndex1" targetIndex1 "target axis-0 lower bound" targetX0
               if targetIndex2 < targetY0 then invalidArgOutOfRange "targetIndex2" targetIndex2 "target axis-1 lower bound" targetY0
               if sourceIndex1 + count1 > sourceXN then 
  -                invalidArgOutOfRange "count1" count1 ("source axis-0 end index = " + string(sourceIndex1+count1) + " source axis-0 upper bound") sourceXN
  +                invalidArgOutOfRange "count1" count1 ("source axis-0 end index = " + string(sourceIndex1 + count1) + " source axis-0 upper bound") sourceXN
               if sourceIndex2 + count2 > sourceYN then 
  -                invalidArgOutOfRange "count2" count2 ("source axis-1 end index = " + string(sourceIndex2+count2) + " source axis-1 upper bound") sourceYN
  +                invalidArgOutOfRange "count2" count2 ("source axis-1 end index = " + string(sourceIndex2 + count2) + " source axis-1 upper bound") sourceYN
               if targetIndex1 + count1 > targetXN then 
  -                invalidArgOutOfRange "count1" count1 ("target axis-0 end index = " + string(targetIndex1+count1) + " target axis-0 upper bound") targetXN
  +                invalidArgOutOfRange "count1" count1 ("target axis-0 end index = " + string(targetIndex1 + count1) + " target axis-0 upper bound") targetXN
               if targetIndex2 + count2 > targetYN then 
  -                invalidArgOutOfRange "count2" count2 ("target axis-1 end index = " + string(targetIndex2+count2) + " target axis-1 upper bound") targetYN
  +                invalidArgOutOfRange "count2" count2 ("target axis-1 end index = " + string(targetIndex2 + count2) + " target axis-1 upper bound") targetYN
   
               for i = 0 to count1 - 1 do
                   for j = 0 to count2 - 1 do
  -                    target.[targetIndex1+i,targetIndex2+j] <- source.[sourceIndex1+i,sourceIndex2+j]
  -
  -        
  +                    target.[targetIndex1 + i, targetIndex2 + j] <- source.[sourceIndex1 + i, sourceIndex2 + j]
  
positive.code:         [<CompiledName("MapIndexed")>]
          let mapi mapping array = 
              checkNonNull "array" array
              let f = OptimizedClosures.FSharpFunc<_,_,_,_>.Adapt(mapping)
              initBased (base1 array) (base2 array) (length1 array) (length2 array) (fun i j -> f.Invoke(i, j, array.[i,j]))
  
          [<CompiledName("Copy")>]
  
negative.code:     module Array2D =
  
          let inline checkNonNull argName arg = 
              if isNull arg then
                  nullArg argName
  
          // Define the primitive operations. 
          // Note: the "type" syntax is for the type parameter for inline 
  