Copyright | Copyright (C) 2015 Kyle Carter |
---|---|
License | BSD3 |
Maintainer | Kyle Carter <kylcarte@indiana.edu> |
Stability | experimental |
Portability | RankNTypes |
Safe Haskell | None |
Language | Haskell2010 |
Sum
is a type combinators for representing disjoint sums of
indices (as :: [k])
of a single functor @(f :: k -> *).
Contrast to the many-functors-one-index FSum
Documentation
data Sum f :: [k] -> * where Source
(Witness p q (f a), Witness p q (Sum k f ((:<) k b as))) => Witness p q (Sum k f ((:<) k a ((:<) k b as))) Source | |
Witness p q (f a) => Witness p q (Sum k f ((:) k a ([] k))) Source | |
HTraversable k [k] (Sum k) Source | |
HFoldable k [k] (Sum k) Source | |
HFunctor k [k] (Sum k) Source | |
HIxTraversable [k] k (Index k) (Sum k) Source | |
HIxFoldable [k] k (Index k) (Sum k) Source | |
HIxFunctor [k] k (Index k) (Sum k) Source | |
type WitnessC p q (Sum k f ((:<) k a ((:<) k b as))) = (Witness p q (f a), Witness p q (Sum k f ((:<) k b as))) Source | |
type WitnessC p q (Sum k f ((:) k a ([] k))) = Witness p q (f a) Source |