Installing packages in Stack: understanding package.yaml vs mypackage.cabal I'm new Haskell and have what I imagine is a trivial question. I'm using stack and looking for the corollary to `npm install somepackage --save` or `pip install somepackage &amp;&amp; pip freeze &gt; requirements.txt`. Admittedly I'm a bit unclear as to when to modify `package.yaml` or `mypackage.cabal`--I imagine the redundancy stems from historical reasons, but would be great to know best practices. Currently, I add to the `extra-deps` list and then run `stack build`.