Inaccurate version bounds

As you can see on https://matrix.hackage.haskell.org/package/Stack@1547822078 there's various build failures for GHC 8.2/8.0/7.10:

Configuring library for Stack-0.4.0..
Preprocessing library for Stack-0.4.0..
Building library for Stack-0.4.0..
[1 of 3] Compiling Data.Stack       ( src/Data/Stack.hs, /tmp/matrix-worker/1547821761/dist-newstyle/build/x86_64-linux/ghc-8.2.2/Stack-0.4.0/build/Data/Stack.o )

src/Data/Stack.hs:30:10: error:
    Not in scope: type constructor or class ‘Semigroup’
   |
30 | instance Semigroup (Stack a) where
   |          ^^^^^^^^^
<<ghc: 218499096 bytes, 91 GCs, 9626987/25998576 avg/max bytes residency (7 samples), 61M in use, 0.001 INIT (0.000 elapsed), 0.088 MUT (0.087 elapsed), 0.154 GC (0.154 elapsed) :ghc>>

I've already fixed up the metadata via https://hackage.haskell.org/package/Stack-0.4.0/revisions/ so there's no need to upload a new release only to correct the metadata.

In general you should only advertise compatibility for versions you've tested manually or via CI (such as e.g. https://github.com/haskell-CI/haskell-ci).

Moreover, I've noticed you seem to be using SemVer whereas on Hackage we expect you to use the PVP scheme. E.g. and Stack-0.2.0 and Stack-0.4.0 are signalling breaking changes according to the PVP even though they were not breaking changes. This is a common misconception, see https://pvp.haskell.org/faq/#how-does-the-pvp-relate-to-semantic-versioning-semver for details.

You might want to add a bug-reports: https://gitlab.com/rwlock/Stack/issues to your .cabal file.