About

Metadata

  • Last updated , by melaniebrown
  • License BSD-3-Clause
  • Maintained by: brown.m@pm.me

  • Lottery factor: 1

Links

Installation

Readme

deep-map

ci Hackage license

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) v

For 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.