Struggling to build
I'm struggling to get the project to select versions it can actually build with. Can you check in a cabal constraints file, using cabal freeze?
I'll take a look at this now. I didn't know about cabal freeze, but, I'd like to update this to use cabal sandbox. I can probably do both?
Probably from a repo perspective, using a sandbox just means changing the .gitignore to include the .cabal-sandbox directory and cabal.sandbox.config file. I'm pretty sure the cabal freeze is seperate. It just looks at your package database and prints out all the versions you are using as a cabal.configs files as cabal --constraints.
I just noticed that I have a big fat TODO in the Understanding Dependencies section. I think it's best to just remove all the upper bounds on my dependencies. That's realistically what I do in practice anyway, and is probably the best way to 'get started'. If you have an upper bound, it's probably because you know what you're doing.
The only thing I risk by not having the upper bounds is that if a library I depend on changes things I could break, but I figure in that case I can just update the code.
Ok, I got advice on #haskell to not remove my upper bounds, but to keep them up to date every 3 months, so I'll do that. But I think I can still freeze each time I update the dependencies. Let me know if you think this makes sense.