return {
  {
    "mrcjkb/haskell-tools.nvim",
    -- WICHTIG: expliziter Modulname; Lazy soll NICHT raten
    main = "haskell-tools",
    ft = { "haskell", "lhaskell", "cabal", "cabalproject" },

    -- Gib Lazy NICHT die Chance, sein Auto-setup zu machen:
    -- Wir liefern EINE eigene config-Funktion und rufen setup() selbst.
    config = function(_, _)
      local ok, ht = pcall(require, "haskell-tools")
      if not ok or type(ht.setup) ~= "function" then
        vim.notify("[haskell-tools] setup() nicht gefunden – wird übersprungen", vim.log.levels.ERROR)
        return
      end

      ht.setup({
        hls = {
          -- Dein Nix-HLS, damit Mason außen vor bleibt
          cmd = { "haskell-language-server-wrapper", "--lsp" },
          settings = {
            haskell = {
              formattingProvider = "fourmolu",
              cabalFormattingProvider = "none",
              plugin = { fourmolu = { config = { external = false } } },
            },
          },
        },
      })
    end,
  },
}
