Use `cabal`, clean-up and add generation