diff options
author | Kierán Meinhardt <kieran.meinhardt@gmail.com> | 2020-09-23 17:44:40 +0200 |
---|---|---|
committer | Kierán Meinhardt <kieran.meinhardt@gmail.com> | 2020-09-23 17:44:40 +0200 |
commit | 8e92e6e11d2b3b0bfb5ac9d68f347219493e6380 (patch) | |
tree | 6484ca42d85ca89475e922f7b45039c116ebbf97 /MappedSets.hs | |
parent | 6a6ad3aecd53ffd89101a0dee2b4ea576d4964d4 (diff) |
split into library + executables
Diffstat (limited to 'MappedSets.hs')
-rw-r--r-- | MappedSets.hs | 28 |
1 files changed, 0 insertions, 28 deletions
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) |