anchor.diff:  
   // Forward declaration to allow mutually recursive 
   // parsers between arrays and inline tables
  -let toml_value,       private pValueImpl  = createParserForwardedToRef ()
  -let toml_array,       private pArrayImpl  = createParserForwardedToRef ()
  +let toml_value      , private pValueImpl  = createParserForwardedToRef ()
  +let toml_array      , private pArrayImpl  = createParserForwardedToRef ()
   let toml_inlineTable, private pITblImpl   = createParserForwardedToRef ()
   
  -let pKVP : Parser<_>  =  
  -    skip_tspcs >>. toml_key .>>. (skipEqs >>. toml_value)
  -
  -let parr : Parser<_> = 
  -    let ``[``:Parser<_> = (attempt (``[`` .>> unicodeNewline .>> skip_tspcs)) <|> ``[`` 
  -    let ``]``:Parser<_> = (attempt (skip_tspcs .>> unicodeNewline .>> skip_tspcs >>. ``]``)) <|> ``]`` 
  -    let ``,``:Parser<_> = (attempt (``,`` .>> unicodeNewline .>> skip_tspcs)) <|> ``,`` 
  -    between  
  -        ``[`` ``]`` (sepBy toml_value ``,``) |>> Value.Array
  -
  -pArrayImpl := parr .>> skip_tspcs
  -
  -pITblImpl :=
  -    (between ``{`` ``}`` (sepBy pKVP ``,``)
  +let pKVP : Parser<_>  = skip_tspcs >>. toml_key .>>. (skipEqs >>. toml_value)
  +
  +let pArray_toml : Parser<_> = 
  +    let ``[``   : Parser<_> = (attempt (``[`` .>> unicodeNewline .>> skip_tspcs)) <|> ``[`` 
  +    let ``]``   : Parser<_> = (attempt (skip_tspcs .>> unicodeNewline .>> skip_tspcs >>. ``]``)) <|> ``]`` 
  +    let ``,``   : Parser<_> = (attempt (``,`` .>> unicodeNewline .>> skip_tspcs)) <|> ``,`` 
  +    between ``[`` ``]`` (sepBy toml_value ``,``) 
  +
  +let pInlineTable : Parser<_> =
  +    between ``{`` ``}`` (sepBy pKVP ``,``)
       |>> fun items ->
           let tbl:(_,_) table = table<_,_> ()
           List.iter tbl.Add items
  -        Value.InlineTable tbl)
  -        .>> skip_tspcs
  +        tbl
  +
  +pArrayImpl := pArray_toml  |>> Value.Array       .>> skip_tspcs
  +pITblImpl  := pInlineTable |>> Value.InlineTable .>> skip_tspcs
   
   // low level parser implementation for simple toml values
   /// parses strings, ints, floats, bools, datetimes, inline tables, and arrays
  
positive.code: (*| Key Parsers |*)
  
  // key formats
  let pBareKey       : Parser<_> = many1Satisfy (isDigit|?|isLetter|?|isAnyOf['_';'-']) 
  let pQuoteKey      : Parser<_> = between ``"`` ``"`` (many1Chars anyChar) 
  
  // key in a collection
  let toml_key       : Parser<_> = (choice [pBareKey; pQuoteKey ]).>> skip_tspcs
  
  // toplevel keys
  let pTableKey      : Parser<_> = between ``[`` ``]`` (sepBy toml_key ``.``)
  let pArrayOfTablesKey : Parser<_> = between ``[[`` ``]]`` (sepBy toml_key ``.``)
  
  
  
negative.code: (*| Whitespace/Comment/LineEnd AKA Skip Parsers |*)
  
  /// toml approved whitespace is ' ' or '\t'
  let skip_tspcs       = skipManySatisfy (isAnyOf [' ';'\t'])
  let tskipRestOfLine  = choice [ skipChar '#' >>. skipRestOfLine  true  
                                  skipRestOfLine  true ]
  
  
  (*| Punctuation Parsers |*)
  