anchor.diff:  Summary:        %s
   
   Samples         %s
  +
  +(For more Metadata, access the type directly)
               """
               gse.SeriesMetadata.Accession
               (gse.SeriesMetadata.Accession           |> String.map (fun c -> '='))
  -            (gse.SeriesMetadata.Type                |> formatMultiEntries 4)
  -            (gse.PlatformMetadata                   |> formatPlatforms 4)
  -            (gse.SeriesMetadata.Title               |> formatSingleEntry 4)
  -            (gse.SeriesMetadata.Contributor         |> formatMultiEntries 4)
  -            (gse.SeriesMetadata.OverallDesign       |> formatMultiEntries 4)
  -            (gse.SeriesMetadata.Summary             |> formatMultiEntries 4)
  -            (gse.SampleMetadata                     |> formatSamples 4)
  +            (gse.SeriesMetadata.Type                |> SOFT.formatMultiEntries 4)
  +            (gse.PlatformMetadata                   |> SOFT.formatPlatforms 4)
  +            (gse.SeriesMetadata.Title               |> SOFT.formatSingleEntry 4)
  +            (gse.SeriesMetadata.Contributor         |> SOFT.formatMultiEntries 4)
  +            (gse.SeriesMetadata.OverallDesign       |> SOFT.formatMultiEntries 4)
  +            (gse.SeriesMetadata.Summary             |> SOFT.formatMultiEntries 4)
  +            (gse.SampleMetadata                     |> SOFT.formatSamples 4)
   
       let prettyPrintGPL (gpl:SOFT.Platform.GPL) =
  -
  -        let formatSingleEntry rootIdent (s: string) =
  -            let ident = [for i in [1 .. (4*rootIdent)] do yield " "] |> String.concat ""
  -            s
  -            |> String.split ' '
  -            |> Array.chunkBySize 15
  -            |> Array.map (String.concat " ")
  -            |> Array.mapi (fun i s -> if i = 0 then s else sprintf "%s%s" ident s)
  -            |> String.concat "\r\n"
  -
  -
  -        let formatMultiEntries rootIdent (l: string list) =
  -            let ident = [for i in [1 .. (4*rootIdent)] do yield " "] |> String.concat ""
  -            l 
  -            |> List.map 
  -                (fun summary -> 
  -                    summary
  -                    |> String.split ' '
  -                    |> Array.chunkBySize 15
  -                    |> Array.map (String.concat " ")
  -                )
  -            |> Array.concat
  -            |> Array.mapi (fun i s -> if i = 0 then s else sprintf "%s%s" ident s)
  -            |> String.concat "\r\n"
  -
  -        let formatSamples rootIdent (sm : Map<string,SampleRecord>) = 
  -            let ident = [for i in [1 .. (4*rootIdent)] do yield " "] |> String.concat ""
  -            sm
  -            |> Map.toList
  -            |> List.map 
  -                (fun (k,v) ->
  -                    sprintf "%s => %s" k v.Title
  -                )
  -            |> List.mapi (fun i s -> if i = 0 then s else sprintf "%s%s" ident s)
  -            |> String.concat "\r\n"
  -
  -    
  -        let formatSeries rootIdent (sm : Map<string,SeriesRecord>) = 
  -            let ident = [for i in [1 .. (4*rootIdent)] do yield " "] |> String.concat ""
  -            sm
  -            |> Map.toList
  -            |> List.map 
  -                (fun (k,v) ->
  -                    sprintf "%s => %s" k v.Title
  -                )
  -            |> List.mapi (fun i s -> if i = 0 then s else sprintf "%s%s" ident s)
  -            |> String.concat "\r\n"
  -
           sprintf
               """
   GEO PLATFORM RECORD %s
  
positive.code:         toString id input
          |> String.concat "\r\n"
  
  
      let prettyPrintGSE (gse:SOFT.Series.GSE) =
  
          let formatSingleEntry rootIdent (s: string) =
              let ident = [for i in [1 .. (4*rootIdent)] do yield " "] |> String.concat ""
              s
              |> String.split ' '
              |> Array.chunkBySize 15
              |> Array.map (String.concat " ")
              |> Array.mapi (fun i s -> if i = 0 then s else sprintf "%s%s" ident s)
              |> String.concat "\r\n"
  
  
          let formatMultiEntries rootIdent (l: string list) =
              let ident = [for i in [1 .. (4*rootIdent)] do yield " "] |> String.concat ""
              l 
              |> List.map 
                  (fun summary -> 
                      summary
                      |> String.split ' '
                      |> Array.chunkBySize 15
                      |> Array.map (String.concat " ")
                  )
              |> Array.concat
              |> Array.mapi (fun i s -> if i = 0 then s else sprintf "%s%s" ident s)
              |> String.concat "\r\n"
  
          let formatSamples rootIdent (sm : Map<string,SampleRecord>) = 
              let ident = [for i in [1 .. (4*rootIdent)] do yield " "] |> String.concat ""
              sm
              |> Map.toList
              |> List.map 
                  (fun (k,v) ->
                      sprintf "%s => %s" k v.Title
                  )
              |> List.mapi (fun i s -> if i = 0 then s else sprintf "%s%s" ident s)
              |> String.concat "\r\n"
  
      
          let formatPlatforms rootIdent (sm : Map<string,PlatformRecord>) = 
              let ident = [for i in [1 .. (4*rootIdent)] do yield " "] |> String.concat ""
              sm
              |> Map.toList
              |> List.map 
                  (fun (k,v) ->
                      sprintf "%s => %s" k v.Title
                  )
              |> List.mapi (fun i s -> if i = 0 then s else sprintf "%s%s" ident s)
              |> String.concat "\r\n"
  
          sprintf
              """
  GEO SERIES RECORD %s
  
negative.code: 
  Type(s):        %s
  
  Title:          %s
  
  Contributor(s): %s
  
  Design:         %s
  
  Summary:        %s
  
  (For more Metadata, access the type directly)
              """
              series.Accession
              (series.Accession           |> String.map (fun c -> '='))
              (series.Type                |> SOFT.formatMultiEntries 4)
              (series.Title               |> SOFT.formatSingleEntry 4)
              (series.Contributor         |> SOFT.formatMultiEntries 4)
              (series.OverallDesign       |> SOFT.formatMultiEntries 4)
              (series.Summary             |> SOFT.formatMultiEntries 4)
  
      let prettyPrintPlatformRecord (platform:SOFT.PlatformRecord) =
          sprintf
              """
  GEO PLATFORM RECORD %s
  ====================%s
  
  Title:          %s
  
  Organism(s):    %s
  
  Description:    %s
  
  Technology:     %s
  
  Contributor(s): %s
  
  (For more Metadata, access the type directly)
              """
              platform.Accession
              (platform.Accession             |> String.map (fun c -> '='))
              (platform.Title                 |> SOFT.formatSingleEntry 4)
              (platform.Organism              |> SOFT.formatMultiEntries 4)
              (platform.Description           |> SOFT.formatMultiEntries 4)
              (platform.Technology            |> SOFT.formatSingleEntry 4)
              (platform.Contributor           |> SOFT.formatMultiEntries 4)
  
      let prettyPrintGSE (gse:SOFT.Series.GSE) =
          sprintf
              """
  GEO SERIES RECORD %s
  ==================%s
  
  Type(s):        %s
  
  Platform(s):    %s
  
  Title:          %s
  