anchor.diff:              match ls with
               | x::[] -> x | _::tl -> loop tl | [] -> failwith "empty list has no last member"
           loop ls
  +
   type UserState = unit    
  -//type Parser<'t> = Parser<'t,TomlState>
   type Parser<'t> = Parser<'t,UserState>
  -//type Parser<'t> = Parser<'t,String>
  -
  -
  -(*| Whitespace Parsers |*)
  +
  +
  +(*| Whitespace/Comment/LineEnd AKA Skip Parsers |*)
   
   /// toml approved whitespace is ' ' or '\t'
  -let ws = isAnyOf [' ';'\t']
  -let toml_space       : Parser<_> = satisfy ws
  -let toml_spaces      : Parser<_> = manySatisfy ws
  -let skip_toml_spaces : Parser<_> = skipManySatisfy ws
  -
  -let tspc       = toml_space
  -let tspcs      = toml_spaces
  -let skip_tspcs = skip_toml_spaces
  -
  -
  -(*| Comment/LineEnd Parsers |*)
  -
  -let skipComment     : Parser<_> = skipChar '#' >>. skipRestOfLine  true
  -let tskipRestOfLine : Parser<_> = skipComment <|>  skipRestOfLine  true
  -let tskipper = skipMany (choice [skip_tspcs; tskipRestOfLine])
  -
  -let spcblock: Parser<_> = 
  -    skipMany(choice [   skip_tspcs .>> skipUnicodeNewline 
  -                        skip_tspcs .>> tskipRestOfLine      ])
  +let ws               = isAnyOf [' ';'\t']
  +let skip_toml_spaces = skipManySatisfy ws
  +let skip_tspcs       = skip_toml_spaces
  +let skipComment      = skipChar '#' >>. skipRestOfLine  true
  +let tskipRestOfLine  = skipComment <|>  skipRestOfLine  true
  +let tskipper         = skipMany (choice [skip_tspcs; tskipRestOfLine])
   
   
   (*| Punctuation Parsers |*)
   
  -let ``.``   : Parser<_> = pchar '.' .>> skip_tspcs 
  -let ``,``   : Parser<_> = pchar ',' .>> skip_tspcs   
  -let ``[``   : Parser<_> = pchar '[' .>> skip_tspcs              
  -let ``]``   : Parser<_> = pchar ']' .>> skip_tspcs   
  -let ``{``   : Parser<_> = pchar '{' .>> skip_tspcs   
  -let ``}``   : Parser<_> = pchar '}' .>> skip_tspcs    
  +let ``.``   : Parser<_> = pchar   '.'  .>> skip_tspcs 
  +let ``,``   : Parser<_> = pchar   ','  .>> skip_tspcs   
  +let ``[``   : Parser<_> = pchar   '['  .>> skip_tspcs              
  +let ``]``   : Parser<_> = pchar   ']'  .>> skip_tspcs   
  +let ``{``   : Parser<_> = pchar   '{'  .>> skip_tspcs   
  +let ``}``   : Parser<_> = pchar   '}'  .>> skip_tspcs    
   let ``[[``  : Parser<_> = pstring "[[" .>> skip_tspcs  
   let ``]]``  : Parser<_> = pstring "]]" .>> skip_tspcs  
   let ``"``   : Parser<_> = pchar '"'
  
positive.code: let mergeResult (rs:Reply<_> list) =
      let output = ([],rs) ||> List.fold (fun acc elm -> elm.Result::acc)
      Reply (Ok,output,NoErrorMessages)
  
  // split the TOML file up into sections by their table keys
  let section_parser (stream: CharStream<_>) =
  
negative.code: let toml_item = 
      ((toml_key .>>. (skipEqs >>. toml_value)) .>> tskipRestOfLine)
  
  /// Parse the beginning of the TOML file, before the first table or array table definition
  let toml_start : Parser<_> =
      skipManyTill anyChar (followedByL toml_item "expected a toml item")
      >>. (many (skip_tspcs>>. toml_item))
  