anchor.diff:                      // If the length is nonzero, then the last substring is still "in-progress"
                       // so apply the function to it.
                       if length > 0 || not <| skipEmptyStrings options then
  -                        action <| Substring (str, offset, length)
  +                        action <| substring (str, offset, length)
   
                   | separator ->
                       /// A sorted copy of the separator array. Used with Array.BinarySearch
  
positive.code:                             if Char.IsWhiteSpace str.[i] then
                                  // Apply the function to the current substring unless it's empty.
                                  if length > 0 then
                                      state <- folder.Invoke (state, substringIndex, Substring (str, offset, length))
  
                                  // Update the offset to just past the end of this substring
                                  // and reset the length to zero to begin a new substring.
  
negative.code:                             if Char.IsWhiteSpace str.[i] then
                                  // Apply the function to the current substring unless it's empty.
                                  if length > 0 then
                                      action.Invoke (substringIndex, substring (str, offset, length))
  
                                  // Update the offset to just past the end of this substring
                                  // and reset the length to zero to begin a new substring.
  