Copyright | (c) Ross Paterson 2010 |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | libraries@haskell.org |
Stability | stable |
Portability | portable |
Safe Haskell | Safe |
Language | Haskell2010 |
Data.Functor.Product
Description
Products, lifted to functors.
Since: base-4.9.0.0
Documentation
data Product (f :: k -> Type) (g :: k -> Type) (a :: k) Source #
Lifted product of functors.
Examples
Expand
>>>
fmap (+1) (Pair [1, 2, 3] (Just 0))
Pair [2,3,4] (Just 1)
>>>
Pair "Hello, " (Left 'x') <> Pair "World" (Right 'y')
Pair "Hello, World" (Right 'y')
Constructors
Instances
Instances details
Instance details
Defined in Data.Functor.Product
Associated Types
Instance details
Defined in Data.Functor.Product
It would be enough for either half of a product to be Foldable1
.
Other could be Foldable
.
Instance details
Defined in Data.Foldable1
Methods
fold1 :: Semigroup m => Product f g m -> m Source #
foldMap1 :: Semigroup m => (a -> m) -> Product f g a -> m Source #
foldMap1' :: Semigroup m => (a -> m) -> Product f g a -> m Source #
toNonEmpty :: Product f g a -> NonEmpty a Source #
maximum :: Ord a => Product f g a -> a Source #
minimum :: Ord a => Product f g a -> a Source #
head :: Product f g a -> a Source #
last :: Product f g a -> a Source #
foldrMap1 :: (a -> b) -> (a -> b -> b) -> Product f g a -> b Source #
foldlMap1' :: (a -> b) -> (b -> a -> b) -> Product f g a -> b Source #
foldlMap1 :: (a -> b) -> (b -> a -> b) -> Product f g a -> b Source #
foldrMap1' :: (a -> b) -> (a -> b -> b) -> Product f g a -> b Source #
Since: base-4.9.0.0
Instance details
Defined in Data.Functor.Product
Since: base-4.9.0.0
Instance details
Defined in Data.Functor.Product
Since: base-4.9.0.0
Instance details
Defined in Data.Functor.Product
Methods
liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (Product f g a) Source #
liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [Product f g a] Source #
liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (Product f g a) Source #
liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [Product f g a] Source #
Since: base-4.9.0.0
Instance details
Defined in Data.Functor.Product
Instance details
Defined in Data.Functor.Contravariant
Since: base-4.9.0.0
Instance details
Defined in Data.Functor.Product
Since: base-4.9.0.0
Instance details
Defined in Data.Functor.Product
Methods
pure :: a -> Product f g a Source #
(<*>) :: Product f g (a -> b) -> Product f g a -> Product f g b Source #
liftA2 :: (a -> b -> c) -> Product f g a -> Product f g b -> Product f g c Source #
(*>) :: Product f g a -> Product f g b -> Product f g b Source #
(<*) :: Product f g a -> Product f g b -> Product f g a Source #
Since: base-4.9.0.0
Instance details
Defined in Data.Functor.Product
Since: base-4.9.0.0
Instance details
Defined in Data.Functor.Product
Since: base-4.9.0.0
Instance details
Defined in Data.Functor.Product
Since: base-4.9.0.0
Instance details
Defined in Data.Functor.Product
Since: base-4.9.0.0
Instance details
Defined in Data.Functor.Product
Since: base-4.9.0.0
Instance details
Defined in Data.Functor.Product
Methods
fold :: Monoid m => Product f g m -> m Source #
foldMap :: Monoid m => (a -> m) -> Product f g a -> m Source #
foldMap' :: Monoid m => (a -> m) -> Product f g a -> m Source #
foldr :: (a -> b -> b) -> b -> Product f g a -> b Source #
foldr' :: (a -> b -> b) -> b -> Product f g a -> b Source #
foldl :: (b -> a -> b) -> b -> Product f g a -> b Source #
foldl' :: (b -> a -> b) -> b -> Product f g a -> b Source #
foldr1 :: (a -> a -> a) -> Product f g a -> a Source #
foldl1 :: (a -> a -> a) -> Product f g a -> a Source #
toList :: Product f g a -> [a] Source #
null :: Product f g a -> Bool Source #
length :: Product f g a -> Int Source #
elem :: Eq a => a -> Product f g a -> Bool Source #
maximum :: Ord a => Product f g a -> a Source #
minimum :: Ord a => Product f g a -> a Source #
Since: base-4.9.0.0
Instance details
Defined in Data.Functor.Product
Methods
traverse :: Applicative f0 => (a -> f0 b) -> Product f g a -> f0 (Product f g b) Source #
sequenceA :: Applicative f0 => Product f g (f0 a) -> f0 (Product f g a) Source #
mapM :: Monad m => (a -> m b) -> Product f g a -> m (Product f g b) Source #
sequence :: Monad m => Product f g (m a) -> m (Product f g a) Source #
Since: base-4.16.0.0
Instance details
Defined in Data.Functor.Product
Since: base-4.16.0.0
Instance details
Defined in Data.Functor.Product
Since: base-4.9.0.0
Instance details
Defined in Data.Functor.Product
Methods
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g0. g0 -> c g0) -> Product f g a -> c (Product f g a) Source #
gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Product f g a) Source #
toConstr :: Product f g a -> Constr Source #
dataTypeOf :: Product f g a -> DataType Source #
dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Product f g a)) Source #
dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Product f g a)) Source #
gmapT :: (forall b. Data b => b -> b) -> Product f g a -> Product f g a Source #
gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Product f g a -> r Source #
gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Product f g a -> r Source #
gmapQ :: (forall d. Data d => d -> u) -> Product f g a -> [u] Source #
gmapQi :: Int -> (forall d. Data d => d -> u) -> Product f g a -> u Source #
gmapM :: Monad m => (forall d. Data d => d -> m d) -> Product f g a -> m (Product f g a) Source #
gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Product f g a -> m (Product f g a) Source #
gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Product f g a -> m (Product f g a) Source #
Instance details
Defined in Data.Functor.Product
Associated Types
Instance details
Defined in Data.Functor.Product
Since: base-4.18.0.0
Instance details
Defined in Data.Functor.Product
Since: base-4.18.0.0
Instance details
Defined in Data.Functor.Product
Since: base-4.18.0.0
Instance details
Defined in Data.Functor.Product
Since: base-4.18.0.0
Instance details
Defined in Data.Functor.Product
Methods
compare :: Product f g a -> Product f g a -> Ordering Source #
(<) :: Product f g a -> Product f g a -> Bool Source #
(<=) :: Product f g a -> Product f g a -> Bool Source #
(>) :: Product f g a -> Product f g a -> Bool Source #
(>=) :: Product f g a -> Product f g a -> Bool Source #
max :: Product f g a -> Product f g a -> Product f g a Source #
min :: Product f g a -> Product f g a -> Product f g a Source #
Since: base-4.9.0.0
Instance details
Defined in Data.Functor.Product
Since: base-4.9.0.0
Instance details
Defined in Data.Functor.Product