#
# assoc(d, key, value[, factory])	Return a new dict with new key value pair
# dissoc(d, *keys)	Return a new dict with the given key(s) removed.
# assoc_in(d, keys, value[, factory])	Return a new dict with new, potentially nested, key value pair
# get_in(keys, coll[, default, no_default])	Returns coll[i0][i1]…[iX] where [i0, i1, …, iX]==keys.
# keyfilter(predicate, d[, factory])	Filter items in dictionary by key
# keymap(func, d[, factory])	Apply function to keys of dictionary
# itemfilter(predicate, d[, factory])	Filter items in dictionary by item
# itemmap(func, d[, factory])	Apply function to items of dictionary
# merge(*dicts, **kwargs)	Merge a collection of dictionaries
# merge_with(func, *dicts, **kwargs)	Merge dictionaries and apply function to combined values
# update_in(d, keys, func[, default, factory])	Update value in a (potentially) nested dictionary
# valfilter(predicate, d[, factory])	Filter items in dictionary by value
# valmap(func, d[, factory])	Apply function to values of dictionary
