Created Started Finished
By: Tom Sydney Kerckhove <syd@cs-syd.eu>
Model root provenance as an ADT and lift the defaults to the top level Review feedback on #204: a `Bool` field is easy to read past, so make the provenance a two-constructor type instead. Pattern matching on `Configured` versus `Default` now forces every dead-root check to say what it does with a defaulted section, rather than relying on a guard against a flag. The default root sections also become top-level bindings, so the TOML decoder can name them directly instead of destructuring `defaultConfig` in a where clause.