@@ -20,8 +20,9 @@ import Control.Monad (liftM2)
2020import Data.SafeCopy (base , deriveSafeCopy )
2121import Data.Typeable (Typeable )
2222import qualified Data.Char as Char
23+ import Data.Functor ( (<&>) )
2324import Data.Maybe (fromMaybe )
24- import Data.List (foldl' )
25+ import Data.List (find , foldl' )
2526import Control.Monad.State (get , put , modify )
2627import Control.Monad.Reader (ask , asks )
2728import Control.DeepSeq
@@ -87,13 +88,9 @@ lookupTagAlias tag
8788 return (Map. lookup tag m)
8889
8990getTagAlias :: 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
9794
9895emptyPackageTags :: PackageTags
9996emptyPackageTags = PackageTags Map. empty Map. empty Map. empty
@@ -279,4 +276,3 @@ $(makeAcidic ''PackageTags ['tagsForPackage
279276 ,'lookupReviewTags
280277 ,'clearReviewTags
281278 ])
282-
0 commit comments