anchor.diff:      parseWith fileName s
   
   /// Format a source string using given config
  -let formatSourceString fsi s config =
  -    let s' =
  -        Context.create config s 
  -        |> genParsedInput (parse fsi s) 
  -        |> dump
  -    integrateComments s s'
  +let formatSourceString fsi s config =    
  +    Context.create config s 
  +    |> genParsedInput (parse fsi s) 
  +    |> dump
  +    |> integrateComments s
   
   /// Format a source string using given config; return None if failed
   let tryFormatSourceString fsi s config =
  
positive.code:     _ -> None
  
  /// Format a source string using given config and write to a text writer
  let processSourceString fsi inStr (tw : TextWriter) config =
      Context.create config inStr 
      |> genParsedInput (parse fsi inStr) 
      |> dump
      |> tw.Write
  
  /// Format a source string using given config and write to a text writer; return None if failed
  let tryProcessSourceString fsi inStr tw config =
      try
          Some (processSourceString fsi inStr tw config)
      with 
      _ -> None
  
  
negative.code:         if i < 0 then NoPatch 
          elif Regex.Match(lines.[i], "^[\s]*type ").Success then RecType
          else
              // Need to compare column to ensure that the let binding is at the same level
              let m = Regex.Match(lines.[i], "^[\s]*let ")
              let col = m.Index + m.Length
              // Value 4 accounts for length of "and "
              if m.Success && col <= startCol + 4 then RecLet else loop (i - 1)
      loop (lines.Length - 1)
  
  