| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Data.Functor.Prod
Description
- data Prod :: [* -> *] -> * -> * where
- zeroTuple :: Prod '[] a
- oneTuple :: f a -> Prod '[f] a
- fromProduct :: Product f g a -> Prod '[f, g] a
- toProduct :: Prod '[f, g] a -> Product f g a
- prod :: Prod ls a -> Prod rs a -> Prod (ls ++ rs) a
- uncurryn :: Curried (Prod fs a -> r a) -> Prod fs a -> r a
- type family l ++ r :: [k] where ...
- type family Curried t where ...
n-tuples of functors.
data Prod :: [* -> *] -> * -> * where Source #
Product of n functors.
Instances
| (Functor f, Functor (Prod fs)) => Functor (Prod ((:) (* -> *) f fs)) Source # | |
| Functor (Prod ([] (* -> *))) Source # | |
| (Applicative f, Applicative (Prod fs)) => Applicative (Prod ((:) (* -> *) f fs)) Source # | Inductively defined instance: |
| Applicative (Prod ([] (* -> *))) Source # | Inductively defined instance: |
| (Foldable f, Foldable (Prod fs)) => Foldable (Prod ((:) (* -> *) f fs)) Source # | |
| Foldable (Prod ([] (* -> *))) Source # | |
| (Traversable f, Traversable (Prod fs)) => Traversable (Prod ((:) (* -> *) f fs)) Source # | Inductively defined instance: |
| Traversable (Prod ([] (* -> *))) Source # | Inductively defined instance: |
| (Eq1 f, Eq1 (Prod fs)) => Eq1 (Prod ((:) (* -> *) f fs)) Source # | |
| Eq1 (Prod ([] (* -> *))) Source # | |
| (Ord1 f, Ord1 (Prod fs)) => Ord1 (Prod ((:) (* -> *) f fs)) Source # | |
| Ord1 (Prod ([] (* -> *))) Source # | |
| (Show1 f, Show1 (Prod fs)) => Show1 (Prod ((:) (* -> *) f fs)) Source # | |
| Show1 (Prod ([] (* -> *))) Source # | |
| (Alternative f, Alternative (Prod fs)) => Alternative (Prod ((:) (* -> *) f fs)) Source # | Inductively defined instance: |
| Alternative (Prod ([] (* -> *))) Source # | Inductively defined instance: |
| (Eq1 f, Eq a, Eq1 (Prod fs)) => Eq (Prod ((:) (* -> *) f fs) a) Source # | |
| Eq a => Eq (Prod ([] (* -> *)) a) Source # | |
| (Ord1 f, Ord a, Ord1 (Prod fs)) => Ord (Prod ((:) (* -> *) f fs) a) Source # | |
| Ord a => Ord (Prod ([] (* -> *)) a) Source # | |
| (Show1 f, Show a, Show1 (Prod fs)) => Show (Prod ((:) (* -> *) f fs) a) Source # | |
| Show a => Show (Prod ([] (* -> *)) a) Source # | |