type-map-0.1.0.0: Type-indexed maps

Safe HaskellNone
LanguageHaskell2010

Data.TypeMap.Static

Synopsis

Documentation

type family Index (a :: k) (d :: [(k, *)]) where ... Source #

Index of type key a in association list d.

Equations

Index a ('(a, _) ': _) = 0 
Index a (_ ': d) = 1 + Index a d 

type family Lookup (a :: k) (d :: [(k, *)]) where ... Source #

Type associated with a in d. If the key a occurs multiple times, the first one is used.

Equations

Lookup a ('(a, b) ': _) = b 
Lookup a (_ ': d) = Lookup a d 

type family Last (d :: [k]) where ... Source #

Last element of a list.

Equations

Last (x ': '[]) = x 
Last (_ ': d) = Last d 

type family Init (d :: [k]) where ... Source #

All elements except the last one.

Equations

Init (_ ': '[]) = '[] 
Init (x ': d) = x ': Init d