Refactor codebase
The codebase needs considerable cleanup. GHCup.Utils
is very ambiguous, there's some code duplication, e.g. between cabal, HLS and stack installation code.
First step could just be restructuring modules, next step could be abstracting over common tasks.
The biggest mess is Main.hs. You'll understand if you look inside.
Further issues that could be improved:
- too much windows CPP (use
isWindows
function where possible, make cleaner Win/Posix modules)