update dependencies and use cabal freeze instead of hardcoding them all in .cabal