On Fri, Dec 4, 2020 at 2:25 PM Eric Seidel <eric@seidel.io> wrote:
Do Bazel/Buck/etc reuse Cabal or do they reimplement the build themselves? I haven't used either (at Bloomberg we use cabal and stack, and good point about default-language, I forgot that was required), but my impression is that Bazel likes to reimplement everything so it can see precise dependencies, have granular caching, etc.
 
I don't know what the Buck Haskell support does. But in Bazel, you have a bit of both. The default behaviour is to build external dependencies with Cabal [1], and local files in pure Bazel [2]. By default, Bazel's rules_haskell will want to use GHC's defaults on your files.

[1]: https://release.api.haskell.build/haskell/cabal.html#haskell_cabal_library
[2]: https://release.api.haskell.build/haskell/defs.html#haskell_library