anchor.diff:                                                  prop.GetValue(box entry, null))
                       box a|]
           
  -        
  +        ///Returns a function to format a given value as string
           static member inline stringFunction (separator: string) (flatten: bool) (input: 'a) =
               let o = box input
               match o with
  +            //match string first so that it doesn't get treated as a char array
  +            | :? string -> 
  +                fun (x: obj) ->
  +                    let sb = new System.Text.StringBuilder()
  +                    sb.Append x |> ignore
  +                    let res = sb.ToString()
  +                    sb.Clear() |> ignore
  +                    res
               | :? System.Collections.IEnumerable as tmp ->
                   if flatten then
                       fun x ->
                           let sb = new System.Text.StringBuilder()
  +                        //iterates over Collections.IEnumerable to get entries as objects for the string builder
                           let a =
                               [for i in tmp do yield box i]
                           a
  
positive.code:                     sb.Clear() |> ignore
                      res
  
          static member inline CSV (separator: string) (header: bool) (flatten: bool) (data: seq<'a>) =
  
              Seq.CSVwith Seq.valueFunction Seq.stringFunction separator header flatten data
negative.code:             |ty when ty = typeof<System.Enum>   -> [|box|]
              |ty when ty.IsArray                 -> [|box|]
              |ty when FSharpType.IsUnion ty      -> [|box|]
              //returns values of the tuple as array, gets also formatted the same as an array in the following functions,
              //except when they are in record types
              |ty when FSharpType.IsTuple ty      -> [|fun (entry: 'a) -> box (FSharpValue.GetTupleFields entry)|]
              |ty when FSharpType.IsRecord ty     ->
          
                  Reflection.FSharpType.GetRecordFields(dataType)
                  |> Array.map (fun field -> (box >> Reflection.FSharpValue.PreComputeRecordFieldReader field))
              //lists also match with this case
              |_ ->
                  [|fun entry ->
                      let a =
  