def map_dict(d, f_value=lambda x: x, f_key=lambda x: x):
    """Apply a map function to every value in the dictionary

    Arguments:
        d {[Dict]} -- [dictionary of any type]
        f_value {[Func]} -- [func that takes the values in dictonary, default to identity]
        f_key {[Func]} -- [func that takes the keys in dictonary, default to identity]
    Returns:
        [Dict] -- [A new dictionary with every value mapped]
    """
    return {f_key(k): f_value(v) for k, v in d.items()}