anchor.diff:      /// Results of parsing the detailed table description
       [<RequireQualifiedAccess>]
       type Data = 
  -        | Node of string * IDictionary<string,Data>
  +        | DataNode of string * IDictionary<string,Data>
           | List of Data list
           | Value of string 
   
  
positive.code:         parser { let! _ = char '{'
                   let! rest = zeroOrMoreSep recordField ',' 
                   let! _ = char '}'
                   return Data.Node("Record",dict rest) }
  
      /// Parse a {...a=b...} field
      and recordField = 
  
negative.code:     /// Get the getFields out of the parsed detailed table description
      let getFields r = 
         [| match r with 
            | Data.DataNode("Table",d) ->
                match d.["sd"] with 
                | Data.DataNode("StorageDescriptor",d2) ->
                   match d2.TryGet "cols" with 
                   | Some (Data.List cols) ->
                     for col in cols do 
                         match col with 
                         | Data.DataNode("FieldSchema",d4) -> 
                             match (d4.TryGet "name", d4.TryGet "type", defaultArg (d4.TryGet "comment") (Data.Value "")) with 
                             | Some (Data.Value nm), Some (Data.Value typ), Data.Value comment -> 
                                yield {Name=nm; Type=parseHiveType typ; Comment=comment}
  