-- | Maps a function over the keys
-- 
-- The supplied function must be bijective and also the domain of k1 should be as small as possible.
mapKeysR :: (Enum k1, Eq k2) => (k1 -> k2) -> FunMap k1 v -> FunMap k2 v
mapKeysR g (FunMap f) = FunMap (f . invertFunction g)
mapKeysR :: (Enum k1, Eq k2) => (k1 -> k2) -> FunMap k1 v -> FunMap k2 v
mapKeysR g (FunMap f) = FunMap (f . invertFunction g)
mapKeysR g (FunMap f) = FunMap (f . invertFunction g)