@@ -3,6 +3,9 @@
3module Distribution.Nixpkgs.Haskell.Stack.PrettyPrinting where
3module Distribution.Nixpkgs.Haskell.Stack.PrettyPrinting where
5import Control.Lens
5import Control.Lens
6+import Data.Foldable as F
8+import Data.List.NonEmpty as NE
6import Data.Maybe
9import Data.Maybe
7import Data.String
10import Data.String
8import Distribution.Nixpkgs.Haskell.Derivation
11import Distribution.Nixpkgs.Haskell.Derivation
@@ -24,8 +27,8 @@ makeLenses ''OverrideConfig
24hasField :: Lens' a (Maybe b) -> a -> Bool
27hasField :: Lens' a (Maybe b) -> a -> Bool
25hasField p = views p isJust
28hasField p = views p isJust
27−overridePackages :: [Derivation] -> Doc
30+overridePackages :: (Foldable t, Functor t) => t Derivation -> Doc
28−overridePackages = PP.packageSetConfig . PP.cat . fmap callPackage
31+overridePackages = PP.packageSetConfig . PP.cat . F.toList . fmap callPackage
30 drvNameQuoted = PP.doubleQuotes . disp . pkgName . view pkgid
33 drvNameQuoted = PP.doubleQuotes . disp . pkgName . view pkgid
31 callPackage drv = hang
34 callPackage drv = hang
@@ -51,7 +54,7 @@ callStackageConfig :: FilePath -> Doc
51callStackageConfig path = hsep
54callStackageConfig path = hsep
52 [ "callPackage", disp (fromString path :: Nix.FilePath), "{}"]
55 [ "callPackage", disp (fromString path :: Nix.FilePath), "{}"]
54−overrideHaskellPackages :: OverrideConfig -> [Derivation] -> Doc
57+overrideHaskellPackages :: OverrideConfig -> NonEmpty Derivation -> Doc
55overrideHaskellPackages oc packages = vcat
58overrideHaskellPackages oc packages = vcat
56 [ funargs ["nixpkgs ? import <nixpkgs> {}"]
59 [ funargs ["nixpkgs ? import <nixpkgs> {}"]
@@ -81,4 +84,4 @@ overrideHaskellPackages oc packages = vcat
82toNixGhcVersion :: Version -> Doc
85toNixGhcVersion :: Version -> Doc
83toNixGhcVersion =
86toNixGhcVersion =
84− (<>) "ghc" . text . filter (/= '.') . show . disp
87+ (<>) "ghc" . text . L.filter (/= '.') . show . disp