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