To unpack that a tiny bit for the people who don't like thoughts in 140 on proprietary platforms:
Debconf is currently very monadic (without realizing it of course), and this is the cause of most, if not all of its problems.
Lose the monads and fall back to their applicative cousins, and you lose the possibility for conditionals etc, so no need for complicated debconf config scripts with typically broken back button support.
But also, applicatives allow for declarative interface building, by composing together building blocks, in an entirely open-ended way. For example, html forms can be expressed applicatively, and I use this in the git-annex webapp (thanks to yesod-form). This should go a along way to solving the problem that debconf is limited to a few basic input types and cannot be used to make more elaborate interfaces when needed.
Pity that if I implemented it in haskell, probably in under 10k LOC, I'd probably get a 10-50 mb binary..