anchor.diff:  
   ///functions for reading and writing GenBank(.gb) files
   module GenBank =
  -
  +      
       open System
       open FSharp.Care
       open FSharp.Care.IO
  
positive.code:     open System.Collections.Generic
      open System.Text
      open FSharp.Care.Collections
      open BioFSharp.Nucleotides
      open FSharp.Care.String
      
      ///Iterate over an array yielding the result of applying a function to each element in a sequence
      let rec private arrayIteriYield (mapping: int -> 'a -> 'b) (a:array<'a>) =
          seq{
              for i=0 to a.Length-1 do
                  yield mapping i a.[i]
              }
  
      ///Represents a single reference from the REFERENCE section of a GenBank file. A Reference represents publications by the authors of the sequence that discuss the data reported in the record.
      type Reference = 
          {
          ///String containing the number of the reference and its base span.
          Ref                     :   string
          ///List of authors in the order in which they appear in the cited article.
          Authors                 :   string
          ///Title of the published work or tentative title of an unpublished work. 
          Title                   :   string
          ///MEDLINE abbreviation of the journal name
          Journal                 :   string
          ///PubMed Identifier (PMID)
          Pubmed                  :   string
          ///Free text comment about this reference
          Remark                  :   string
          ///Any other fields contained in a reference are parsed into this key,value list
          AdditionalInformation   :   (string*string) list
          }
          ///returns a sequence of strings for writing this type to a genBank file with correct formatting
          member this.toFileString =
              seq{
                  yield ("REFERENCE   " + this.Ref)
                  if not (this.Authors = ".") then yield! ((this.Authors.Split '\n')  |> arrayIteriYield (fun i x -> if i=0 then "  AUTHORS   "+x else "            "+x))
                  if not (this.Title   = ".") then yield! ((this.Title.Split '\n')    |> arrayIteriYield (fun i x -> if i=0 then "  TITLE     "+x else "            "+x))
                  if not (this.Journal = ".") then yield! ((this.Journal.Split '\n')  |> arrayIteriYield (fun i x -> if i=0 then "  JOURNAL   "+x else "            "+x))
                  if not (this.Pubmed  = ".") then yield! ((this.Pubmed.Split '\n')   |> arrayIteriYield (fun i x -> if i=0 then "   PUBMED   "+x else "            "+x))
                  if not (this.Remark  = ".") then yield! ((this.Remark.Split '\n')   |> arrayIteriYield (fun i x -> if i=0 then "  REMARK    "+x else "            "+x))
                  for (k,v) in this.AdditionalInformation do 
                      let sb = new StringBuilder()
                      yield! 
                          ((v.Split '\n')   
                          |> arrayIteriYield (fun i x -> 
                              for a=0 to 12-k.Length+1 do sb.Insert(0," ") |> ignore
                              if i=0 then "  " + k + sb.ToString() + x else "            "+x))
                  }
  
      let createReference ref authors title journal pubmed rem ai = {Ref=ref; Authors=authors; Title=title; Journal=journal; Pubmed=pubmed; Remark=rem; AdditionalInformation=ai} 
  
      ///Represents a single feature Qualifier and its value from the FEATURES section of a Genbank file. Features can contain
      ///Information about genes and gene products, as well as regions of biological significance reported in the sequence
  
negative.code:                     cs,(Token.Value (v.Trim()))
              else
                  cs,(Token.Section (k.Trim(),v.Trim()))
          
          ///Iterates over an input sequence of strings and returns a sequence containing the corresponding token for each entry.
          let private tokenizer (input:seq<string>) =
              let en = input.GetEnumerator()
  