It is definitely a package problem as the dependencies were not specified tightly enough. If a package follows the Package Versioning Policy, if you can satisfy the dependencies, the package should build.
Looking at the fay package description I notice that hardly any dependency has an lower or upper bound. So basically, you’ll have to experiment.
Looking at the code I see that the reader
mentioned in the error is Options.Applicative.Builder.reader. This function has changed the type signature between 0.4.3 and 0.5.0, so try to downgrade optparse-applicative by passing --constraint "optparse-applicative < 0.5"
to cabal install
.