| Copyright | Copyright (C) 2015 Kyle Carter |
|---|---|
| License | BSD3 |
| Maintainer | Kyle Carter <kylcarte@indiana.edu> |
| Stability | experimental |
| Portability | RankNTypes |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.Type.Product
Description
Type combinators for type-level lists,
lifting (f :: k -> *) to (Prod f :: [k] -> *),
as well as its constructions, manipulations, and
eliminations.
Prod is similar in nature to a few others in the Haskell ecosystem, such as:
Oleg's HList, from http://hackage.haskell.org/package/HList, and
Kenneth Foner's ConicList, from http://hackage.haskell.org/package/IndexedList-0.1.0.1/docs/Data-List-Indexed-Conic.html.
Documentation
data Prod f :: [k] -> * where Source
Instances
| Witness ØC ØC (Prod k f (Ø k)) Source | |
| HTraversable k [k] (Prod k) Source | |
| HFoldable k [k] (Prod k) Source | |
| HFunctor k [k] (Prod k) Source | |
| HIxFoldable [k] k (Index k) (Prod k) Source | |
| HIxFunctor [k] k (Index k) (Prod k) Source | |
| Known [k] (Prod k f) (Ø k) Source | |
| (Known k f a, Known [k] (Prod k f) as) => Known [k] (Prod k f) ((:<) k a as) Source | |
| (Witness p q (f a), Witness s t (Prod k f as)) => Witness (p, s) (q, t) (Prod k f ((:<) k a as)) Source | |
| type WitnessC ØC ØC (Prod k f (Ø k)) = ØC | |
| type KnownC [k] (Prod k f) (Ø k) = ØC | |
| type KnownC [k] (Prod k f) ((:<) k a as) = (Known k f a, Known [k] (Prod k f) as) Source | |
| type WitnessC (p, s) (q, t) (Prod k f ((:<) k a as)) = (Witness p q (f a), Witness s t (Prod k f as)) Source |