From 8e92e6e11d2b3b0bfb5ac9d68f347219493e6380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kier=C3=A1n=20Meinhardt?= Date: Wed, 23 Sep 2020 17:44:40 +0200 Subject: split into library + executables --- MappedSets.hs | 28 ---------------------------- 1 file changed, 28 deletions(-) delete mode 100644 MappedSets.hs (limited to 'MappedSets.hs') diff --git a/MappedSets.hs b/MappedSets.hs deleted file mode 100644 index c3045c6..0000000 --- a/MappedSets.hs +++ /dev/null @@ -1,28 +0,0 @@ -module MappedSets (invert, mk) where - -import Control.Arrow -import Data.Map.Strict (Map) -import qualified Data.Map.Strict as Map -import Data.Maybe -import Data.Set (Set) -import qualified Data.Set as Set - - -mk :: (Ord a, Ord b) => [(a, [b])] -> Map a (Set b) -mk = - Map.fromList . map (second Set.fromList) - - -invert :: (Ord a, Ord b) => Map a (Set b) -> Map b (Set a) -invert = - Map.foldrWithKey invert1 Map.empty - - -invert1 :: (Ord a, Ord b) => a -> Set b -> Map b (Set a) -> Map b (Set a) -invert1 k v a = - Set.foldr (upsert k) a v - - -upsert :: (Ord a, Ord b) => a -> b -> Map b (Set a) -> Map b (Set a) -upsert k = - Map.alter (Just . Set.insert k . fromMaybe Set.empty) -- cgit v1.2.3