<div dir="ltr"><div dir="ltr">On Fri, Dec 4, 2020 at 2:25 PM Eric Seidel <<a href="mailto:eric@seidel.io">eric@seidel.io</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">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.<br></blockquote><div> </div><div>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.<br></div><div><br></div><div>[1]: <a href="https://release.api.haskell.build/haskell/cabal.html#haskell_cabal_library">https://release.api.haskell.build/haskell/cabal.html#haskell_cabal_library</a></div><div>[2]: <a href="https://release.api.haskell.build/haskell/defs.html#haskell_library">https://release.api.haskell.build/haskell/defs.html#haskell_library</a></div></div></div>