@@ -20,8 +20,9 @@ import Control.Monad (liftM2)
20
20
import Data.SafeCopy (base , deriveSafeCopy )
21
21
import Data.Typeable (Typeable )
22
22
import qualified Data.Char as Char
23
+ import Data.Functor ( (<&>) )
23
24
import Data.Maybe (fromMaybe )
24
- import Data.List (foldl' )
25
+ import Data.List (find , foldl' )
25
26
import Control.Monad.State (get , put , modify )
26
27
import Control.Monad.Reader (ask , asks )
27
28
import Control.DeepSeq
@@ -87,13 +88,9 @@ lookupTagAlias tag
87
88
return (Map. lookup tag m)
88
89
89
90
getTagAlias :: Tag -> Query TagAlias Tag
90
- getTagAlias tag
91
- = do TagAlias m <- ask
92
- if tag `elem` Map. keys m
93
- then return tag
94
- else if tag `Set.member` foldr Set. union Set. empty (Map. elems m)
95
- then return $ head (Map. keys $ Map. filter (tag `Set.member` ) m)
96
- else return tag
91
+ getTagAlias tag = ask <&> \ (TagAlias m) ->
92
+ if Map. member tag m then tag
93
+ else maybe tag fst $ find (Set. member tag . snd ) $ Map. toList m
97
94
98
95
emptyPackageTags :: PackageTags
99
96
emptyPackageTags = PackageTags Map. empty Map. empty Map. empty
@@ -279,4 +276,3 @@ $(makeAcidic ''PackageTags ['tagsForPackage
279
276
,'lookupReviewTags
280
277
,'clearReviewTags
281
278
])
282
-
0 commit comments