anchor.diff:                  state <- folder.Invoke (state, i, substring.[i])
               state
   
  -    //
  +    /// Applies a function to each character of the string, threading an accumulator
  +    /// argument through the computation.
  +    /// If the input function is f and the characters are c0...cN then computes f c0 (...(f cN s)).
       [<CompiledName("FoldBack")>]
       let foldBack (folder : char -> 'State -> 'State) (substring : substring) state : 'State =
           // OPTIMIZATION : Immediately return if the substring is empty.
  
positive.code:                 state <- folder.Invoke (state, substring.[i])
              state
  
      //
      [<CompiledName("FoldIndexed")>]
      let foldi (folder : 'State -> int -> char -> 'State) state (substring : substring) : 'State =
          // OPTIMIZATION : Immediately return if the substring is empty.
  
negative.code:             for i = len - 1 downto 0 do
                  state <- folder.Invoke (substring.[i], state)
              state
  
  
  /// Additional functional operators on strings.
  