anchor.diff:  
   type FileWriterCommands = 
       | BeginTable of record : Dictionary<string, string>
  -    | AddRecord of record : Dictionary<string, string>
  +    | AddRecord of mainRecord : bool * record : Dictionary<string, string>
       | EndTable
   
   [<Sealed>]
  
positive.code: open System.Collections.Generic
  open System.ComponentModel.DataAnnotations.Schema
  open System.Data.Entity
  open System.IO
  open System.Text
  open System.Threading.Tasks
  
negative.code:         match searchService.Search(query, record) with
          | Choice1Of2(results) -> 
              if results.Meta.RecordsReturned > 1 then 
                  Debug.WriteLine("Duplicate Found")
                  use context = new DataContext(req.ConnectionString)
                  let header = 
                      context.headers.Add
                          (new Header(PrimaryRecordId = record.[Constants.IdField], SessionId = session.SessionId, 
                                      DisplayName = record.[session.DisplayFieldName]))
                  let docs = results |> toFlatResults
                  for result in docs.Documents do
                      // The returned record is same as the passed record. Save the score for relative
                      // scoring later
                      let score = float result.[Constants.Score]
                      if result.[Constants.IdField] = header.PrimaryRecordId then 
                          header.Score <- score
                          if req.GenerateReport then 
                              // Write header record for the report
                              record.[Constants.Score] <- score.ToString()
                              fileWriter.Post(BeginTable record, req.ReportName)
                              fileWriter.Post(AddRecord(true, record), req.ReportName)
                      else 
                          let score = 
                              if header.Score >= score then score / header.Score * 100.0
  