When a project uses gazelle_cabal and gazelle_haskell_modules, adding Haskell files requires to modify the xxx.cabal file, hence to run gazelle_cabal to propagate those modifications to Bazel. But running gazelle_cabal alone on a "haskell_modules" Bazel project leads to an inconsistent state where the haskell_library rules have both the srcs and the modules fields, whereas the 2 are incompatible.
Fortunately, running gazelle_haskell_modules solves this and bring the project in the expected state.