Safe Haskell | None |
---|---|

Language | Haskell2010 |

List utilities at the type-level.

## Synopsis

- type family Index xs x where ...
- type family xs ++ ys where ...
- type family Concat (xs :: [[k]]) :: [k] where ...
- type family Concat_Constraints (cs :: [Constraint]) :: Constraint where ...
- type family DeleteAll (x :: k) (xs :: [k]) :: [k] where ...
- type family Head (xs :: [k]) :: k where ...
- type family Tail (xs :: [k]) :: [k] where ...
- type family Nub (xs :: [k]) :: [k] where ...
- data Len (xs :: [k]) where
- addLen :: Len a -> Len b -> Len (a ++ b)
- shiftLen :: forall t b a. Len a -> Len (a ++ b) -> Len (a ++ (t ': b))
- intLen :: Len xs -> Int
- class LenInj (vs :: [k]) where

## Type

`Index`

type family Index xs x where ... Source #

Return the position of a type within a list of them.
This is useful to work around `OverlappingInstances`

.

# Type family `(++)`

# Type family

`Concat`

# Type family

`Concat_Constraints`

type family Concat_Constraints (cs :: [Constraint]) :: Constraint where ... Source #

Concat_Constraints '[] = () | |

Concat_Constraints (c ': cs) = (c, Concat_Constraints cs) |