@@ -75,8 +75,8 @@ overrideHaskellPackages oc packages = vcat
7575 , nest 2 "inherit pkgs stdenv;"
7676 , nest 2 "inherit (self) callPackage;"
7777 , "};"
78− , ""
79− ]
78+ , attr "stackYamlPackages" (stackYamlPackages $ pkgName . packageId <$> packages)
79+ ]
8080 , "in callPackage (nixpkgs.path + \"/pkgs/development/haskell-modules\") {"
8181 , nest 2 $ vcat
8282 [ attr "ghc" ("pkgs.haskell.compiler." <> nixGhc)
@@ -86,7 +86,7 @@ overrideHaskellPackages oc packages = vcat
8686 , attr "configurationCommon" "args: self: super: {}"
8787 , "inherit haskellLib;"
8888 ]
89− , "}"
89+ , "} // { inherit stackYamlPackages; }"
9090 ] where
9191 nixGhc = toNixGhcVersion (oc ^. ocGhc)
9292
@@ -100,11 +100,12 @@ overrideStackage stackResolver nixpkgsPath packages = vcat
100100 , nest 2 $ vcat
101101 [ "stackPackages ="
102102 , nest 2 $ overridePackages packages <> semi
103+ , attr "stackYamlPackages" (stackYamlPackages $ pkgName . packageId <$> packages)
103104 ]
104105 , "in nixpkgs.haskell.packages.stackage." <> toNixStackResolver stackResolver <> ".override {"
105106 , nest 2
106107 $ attr "packageSetConfig" "self: super: stackPackages { inherit (nixpkgs) pkgs stdenv; inherit (self) callPackage; } super"
107− , "}"
108+ , "} // { inherit stackYamlPackages; }"
108109 ]
109110
110111pPrintHaskellPackages :: OverrideConfig -> Doc
@@ -147,6 +148,15 @@ pPrintHaskellPackages oc = vcat
147148 , "in extensible-self"
148149 ]
149150
151+stackYamlPackages :: NonEmpty PackageName -> Doc
152+stackYamlPackages packages = hcat
153+ [ "self: { "
154+ , "inherit (self) "
155+ , text . intercalate " " $ NE.toList packageNames
156+ , "; }" ]
157+ where
158+ packageNames = unPackageName <$> packages
159+
150160toNixGhcVersion :: Version -> Doc
151161toNixGhcVersion = (<>) "ghc" . toNixVersion . show . disp
152162