Is it okay to use the cabal solver to conditionally define dependencies and instances like this?
Haskell Community [Unofficial]
May 14, 2026
clinton:
> Now arguably this is a little naughty as a flag is changing the external interface of the module (i.e. we’re exporting a new instance) but surely lots of automatic flags do this
I don’t think changing the external interface of a module with flags is very common, actually. It’s not a good idea. But this is a bit of a contentious area; the policies and norms are underspecified.
I was actually just looking at a discussion that showcases the disagreements. If we engage in some blame-free retrospective action (i.e., be nice to everybody in the thread), there are some generally-applicable observations made therein. The link to the thread.
Discussion in the ATmosphere