anchor.diff:              checkNonNull "array1" array1
               checkNonNull "array2" array2
               let f = OptimizedClosures.FSharpFunc<_,_,_,_>.Adapt(f)
  -            let len1 = array1.Length 
  -            if len1 <> array2.Length then invalidArg "array2" (SR.GetString(SR.arraysHadDifferentLengths));
  +            if array1.Length <> array2.Length then invalidArg "array2" (SR.GetString(SR.arraysHadDifferentLengths));
               for i = 0 to array1.Length-1 do 
                   f.Invoke(i,array1.[i], array2.[i])
   
  
positive.code:             checkNonNull "array1" array1
              checkNonNull "array2" array2
              let f = OptimizedClosures.FSharpFunc<_,_,_,_>.Adapt(f)
              let len1 = array1.Length 
              if len1 <> array2.Length then invalidArg "array2" (SR.GetString(SR.arraysHadDifferentLengths));
              let res = Array.zeroCreateUnchecked len1 
              for i = 0 to res.Length-1 do 
                  res.[i] <- f.Invoke(i,array1.[i], array2.[i])
              res
  
negative.code:             checkNonNull "array1" array1
              checkNonNull "array2" array2
              let f = OptimizedClosures.FSharpFunc<_,_,_>.Adapt(f)
              if array1.Length <> array2.Length then invalidArg "array2" (SR.GetString(SR.arraysHadDifferentLengths));
              for i = 0 to array1.Length-1 do 
                  f.Invoke(array1.[i], array2.[i])
  
  