anchor.diff:  
           // Walk through any chunks where the keys are equal
           let mutable i = 0
  -        let len = array.Length
           let intCompare = fastComparerForArraySort<int>()
   
           while i < len do
  
positive.code: 
      let unstableSortInPlaceBy (projection: 'T -> 'U) (array : array<'T>) =
          let len = array.Length
          if len < 2 then ()
          else
              let keys = zeroCreateUnchecked array.Length
              for i = 0 to array.Length - 1 do
                  keys.[i] <- projection array.[i]
              Array.Sort<_, _>(keys, array, fastComparerForArraySort())
  
      let unstableSortInPlace (array : array<'T>) =
          let len = array.Length
          if len < 2 then ()
          else Array.Sort<_>(array, fastComparerForArraySort())
  
      let stableSortWithKeysAndComparer (cFast:IComparer<'Key>) (c:IComparer<'Key>) (array:array<'T>) (keys:array<'Key>)  =
          // 'places' is an array or integers storing the permutation performed by the sort
          let places = zeroCreateUnchecked array.Length
          for i = 0 to array.Length - 1 do
              places.[i] <- i
          System.Array.Sort<_, _>(keys, places, cFast)
          // 'array2' is a copy of the original values
  
negative.code: 
      let stableSortInPlaceBy (projection: 'T -> 'U) (array : array<'T>) =
          let len = array.Length
          if len > 1 then
              // 'keys' is an array storing the projected keys
              let keys = zeroCreateUnchecked len
              for i = 0 to len - 1 do
                  keys.[i] <- projection array.[i]
              stableSortWithKeys array keys
  
      let stableSortInPlace (array : array<'T>) =
          let len = array.Length
          if len > 1 then
              let cFast = LanguagePrimitives.FastGenericComparerCanBeNull<'T>
              match cFast with
              | null ->
  