@@ -6,6 +6,7 @@ import Control.Lens
6import Data.Bifunctor
6import Data.Bifunctor
7import Data.ByteString as BS
7import Data.ByteString as BS
8import Data.Coerce
8import Data.Coerce
9+import Data.Foldable as F
9import Data.List.NonEmpty as NE
10import Data.List.NonEmpty as NE
10import Data.Maybe
11import Data.Maybe
11import Data.Semigroup
12import Data.Semigroup
@@ -79,10 +80,11 @@ fromYamlConfig :: Yaml.Config -> StackConfig
79fromYamlConfig c = StackConfig{..}
80fromYamlConfig c = StackConfig{..}
81 _scResolver = coerce $ c ^. cResolver
82 _scResolver = coerce $ c ^. cResolver
83+ -- 'NE.nub' replicates Stack behavior of having a Set of packages rather than list
82− _scPackages = NE.nub
84+ _scPackages = NE.nub $ F.foldl' (<>) nePackages yamlExtraDeps
83− $ fromMaybe (pure defaultPackage)
85+ nePackages = fromMaybe (pure defaultPackage)
84 $ fmap sconcat
86 $ fmap sconcat
85− $ NE.nonEmpty (yamlPackages <> yamlExtraDeps)
87+ $ NE.nonEmpty yamlPackages
86 yamlPackages = fromYamlPackage packagesSimplePath False
88 yamlPackages = fromYamlPackage packagesSimplePath False
87 <$> fromMaybe mempty (c ^. cPackages)
89 <$> fromMaybe mempty (c ^. cPackages)
88 yamlExtraDeps = fromYamlPackage extraDepsSimplePath True
90 yamlExtraDeps = fromYamlPackage extraDepsSimplePath True