Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
- 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.
(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 # | |