Open vrom911 opened 4 years ago
@vrom911 Excellent idea 👌 It's totally possible because we already know this information during parsing. I think, the solution to this problem will be to implement a type like:
data TomlTable = TomlTable
{ tomlTableInline :: TableInline
, tomlTableTOML :: TOML
}
And instead of the current type
it will look like this
data TOML = TOML
{ tomlPairs :: !(HashMap Key AnyValue)
, tomlTables :: !(PrefixMap TomlTable)
, tomlTableArrays :: !(HashMap Key (NonEmpty TomlTable))
}
I think it's totally worth it, since it will help to produce better output!
There are two ways to write tables in TOML. But currently
tomland
doesn't keep track of such information, though it could be useful during pretty-printing later. This info is not that hard to get, as we already parsing both cases.The question is, do you think that it worth to support this enhancement? And what the downsides are?