looking further, it seems that aside from repetitiveness, safety is the main focus:
https://github.com/dhall-lang/dhall-lang/wiki/Safety-guarant...
which in Rust, we're solving this via SANE and SCL:
https://gitlab.com/bloom42/sane-rs
I'm not sure how much need there is for an additional programming layer, especially within config (the part of a program with the simplest syntactic requirements).
for my projects where "ahead-of-time validation" is needed, we're currently using SCL's parser for safety guarantees:
https://github.com/foundpatterns/contentdb
https://github.com/foundpatterns/lighttouch/blob/d7ada4576a6...
https://github.com/foundpatterns/torchbear/blob/4dd2b9ea76ba...