on master help sign in
Get rid of semigroups dependency
dac392aEvan Czaplicki
builder/src/File/Artifacts.hs+5−7
@@ -11,8 +11,6 @@ import Control.Concurrent.MVar (newEmptyMVar, putMVar, readMVar)
11import Control.Monad (foldM, void)
11import Control.Monad (foldM, void)
12import Control.Monad.Except (liftIO)
12import Control.Monad.Except (liftIO)
13import qualified Data.Binary as Binary
13import qualified Data.Binary as Binary
14−import qualified Data.List.NonEmpty as NonEmpty
15−import Data.List.NonEmpty (NonEmpty((:|)))
16import Data.Map (Map)
14import Data.Map (Map)
17import qualified Data.Map as Map
15import qualified Data.Map as Map
18import qualified Data.Maybe as Maybe
16import qualified Data.Maybe as Maybe
@@ -87,7 +85,7 @@ gather onGood answers =
87 foldM (gatherHelp onGood) (Right Map.empty) (Map.toList answers)
85 foldM (gatherHelp onGood) (Right Map.empty) (Map.toList answers)
88
86
89 case summary of
87 case summary of
90− Left (err :| errors) ->
88+ Left (err, errors) ->
91 Task.throw (Exit.Compile err errors)
89 Task.throw (Exit.Compile err errors)
92
90
93 Right results ->
91 Right results ->
@@ -117,7 +115,7 @@ gatherHelp onGood summary (name, answer) =
117
115
118
116
119type Summary a =
117type Summary a =
120− Either (NonEmpty E.Exit) (Map Module.Raw a)
118+ Either (E.Exit, [E.Exit]) (Map Module.Raw a)
121
119
122
120
123addOk :: Module.Raw -> a -> Summary a -> Summary a
121addOk :: Module.Raw -> a -> Summary a -> Summary a
@@ -133,8 +131,8 @@ addOk name result acc =
133addErr :: E.Exit -> Summary a -> Summary a
131addErr :: E.Exit -> Summary a -> Summary a
134addErr err acc =
132addErr err acc =
135 case acc of
133 case acc of
136− Left errors ->
134+ Left (e, es) ->
137− Left (NonEmpty.cons err errors)
135+ Left (err, e:es)
138
136
139 Right _ ->
137 Right _ ->
140− Left (err :| [])
138+ Left (err, [])
builder/src/File/Header.hs+5−5
@@ -11,9 +11,7 @@ module File.Header
11
11
12import Control.Monad.Except (liftIO)
12import Control.Monad.Except (liftIO)
13import qualified Data.ByteString as BS
13import qualified Data.ByteString as BS
14−import Data.List.NonEmpty (NonEmpty((:|)))
15import qualified Data.Map as Map
14import qualified Data.Map as Map
16−import Data.Semigroup ((<>))
17import qualified Data.Time.Calendar as Day
15import qualified Data.Time.Calendar as Day
18import qualified Data.Time.Clock as Time
16import qualified Data.Time.Clock as Time
19import qualified System.Directory as Dir
17import qualified System.Directory as Dir
@@ -100,10 +98,12 @@ readManyFiles summary file files =
100 Task.mapError Exit.Crawl $
98 Task.mapError Exit.Crawl $
101 do info <- readManyFilesHelp summary file
99 do info <- readManyFilesHelp summary file
102 infos <- traverse (readManyFilesHelp summary) files
100 infos <- traverse (readManyFilesHelp summary) files
103− let insert (name, info) dict = Map.insertWith (<>) name (info :| []) dict
104 let nameTable = foldr insert Map.empty (info:infos)
101 let nameTable = foldr insert Map.empty (info:infos)
105 _ <- Map.traverseWithKey detectDuplicateNames nameTable
102 _ <- Map.traverseWithKey detectDuplicateNames nameTable
106 return (info, infos)
103 return (info, infos)
104+ where
105+ append (x,xs) (y,ys) = (x, xs ++ y : ys)
106+ insert (k,v) dict = Map.insertWith append k (v, []) dict
107
107
108
108
109readManyFilesHelp :: Summary -> FilePath -> Task.Task_ E.Exit (Module.Raw, Info)
109readManyFilesHelp :: Summary -> FilePath -> Task.Task_ E.Exit (Module.Raw, Info)
@@ -118,8 +118,8 @@ readManyFilesHelp summary path =
118 return (name, info)
118 return (name, info)
119
119
120
120
121−detectDuplicateNames :: Module.Raw -> NonEmpty Info -> Task.Task_ E.Exit ()
121+detectDuplicateNames :: Module.Raw -> (Info, [Info]) -> Task.Task_ E.Exit ()
122−detectDuplicateNames name (info :| otherInfos) =
122+detectDuplicateNames name (info, otherInfos) =
123 case otherInfos of
123 case otherInfos of
124 [] ->
124 [] ->
125 return ()
125 return ()
elm.cabal−1
@@ -251,7 +251,6 @@ Executable elm
251 process,
251 process,
252 raw-strings-qq,
252 raw-strings-qq,
253 scientific,
253 scientific,
254− semigroups,
255 SHA,
254 SHA,
256 snap-core,
255 snap-core,
257 snap-server,
256 snap-server,