I have an draft rewrite of bootstrap.sh in haskell. I've tried to improve the maintainability of the code and reliability of running the bootstrap.

https://github.com/JakeWheat/cabal/blob/bootstrap-hs/cabal-install/Bootstrap.hs

Any feedback is appreciated!