
I'm facing this problem too, with hledger. It has optional happstack and vty interfaces which add to the difficulty and platform-specificity of installation. Currently I publish all in one package with a cabal flag for each interface, with happstack off and vty on by default. vty isn't available on windows, but I understand that cabal is smart enough to flip the flags until it finds a combination that is installable, so I hoped it would just turn off vty for windows users. It didn't, though. An alternative is to publish separate packages, debian style: libhledger, hledger, hledger-vty, hledger-happs etc. These are more discoverable and easier to document for users. It does seem hackage would be less fun to browse if it fills up with all these variants. But maybe it's simpler.