module Utils.Map where import Data.Map (Map, keys, elems) showMap :: String -> (String -> String) -> (a -> String) -> Map String a -> [String] showMap :: String -> (String -> String) -> (a -> String) -> Map String a -> [String] showMap String sep String -> String showKey a -> String showValue Map String a mapping = (\(String k, a v) -> String -> String showKey String k String -> String -> String forall a. [a] -> [a] -> [a] ++ String sep String -> String -> String forall a. [a] -> [a] -> [a] ++ a -> String showValue a v) ((String, a) -> String) -> [(String, a)] -> [String] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> [(String, a)] tuples where tuples :: [(String, a)] tuples = [String] -> [a] -> [(String, a)] forall a b. [a] -> [b] -> [(a, b)] zip (Map String a -> [String] forall k a. Map k a -> [k] keys Map String a mapping) (Map String a -> [a] forall k a. Map k a -> [a] elems Map String a mapping)