module Bookhound.Utils.Map where import Data.Map (Map, elems, keys) showMap :: String -> (String -> String) -> (a -> String) -> Map String a -> [String] showMap :: forall a. 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 forall a. Semigroup a => a -> a -> a <> String sep forall a. Semigroup a => a -> a -> a <> a -> String showValue a v) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> [(String, a)] tuples where tuples :: [(String, a)] tuples = forall a b. [a] -> [b] -> [(a, b)] zip (forall k a. Map k a -> [k] keys Map String a mapping) (forall k a. Map k a -> [a] elems Map String a mapping)