A DeepMap is a map that has several layers of keys.
type DeepMap :: [Type] -> Type -> Type
data DeepMap ks v where
Core :: v -> DeepMap '[] v
Wrap :: Map k (DeepMap ks v) -> DeepMap (k ': ks) vFor a given (k ': ks) :: [Type], the type DeepMap (k ': ks) v is isomorphic to lists of the form [(k, k0, .., kn, v)] where ks = '[k0, ..., kn], but with better performance.