Why does this expression duplicate most of the arguments to `cabal` instead of overriding the one that wants to change, i.e. `Cabal`?