diff --git a/backend/src/Utils.hs b/backend/src/Utils.hs index d89688145..5bc514f51 100644 --- a/backend/src/Utils.hs +++ b/backend/src/Utils.hs @@ -932,6 +932,11 @@ mapFromSetM = (sequenceA .) . Map.fromSet setToMap :: (Ord k) => (v -> k) -> Set v -> Map k v setToMap mkKey = Map.fromList . fmap (\x -> (mkKey x, x)) . Set.toList +-- Create a Map given a key-computation +-- For Entity, use Utils.DB.entities2map instead +mapFromFoldable :: (Ord k, Foldable t) => (v -> k) -> t v -> Map k v +mapFromFoldable getKey = foldMap (Map.singleton =<< getKey) + mapFM :: (Applicative m, Ord k, Finite k) => (k -> m v) -> m (Map k v) mapFM = sequenceA . mapF