Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Synopsis
- newtype Product a = Product {
- getProduct :: a
Documentation
Monoid under multiplication.
>>>
getProduct (Product 3 <> Product 4 <> mempty)
12
Product | |
|
Instances
Monad Product | Since: base-4.8.0.0 |
Functor Product | Since: base-4.8.0.0 |
MonadFix Product | Since: base-4.8.0.0 |
Defined in Control.Monad.Fix | |
Applicative Product | Since: base-4.8.0.0 |
Foldable Product | Since: base-4.8.0.0 |
Defined in Data.Foldable fold :: Monoid m => Product m -> m # foldMap :: Monoid m => (a -> m) -> Product a -> m # foldr :: (a -> b -> b) -> b -> Product a -> b # foldr' :: (a -> b -> b) -> b -> Product a -> b # foldl :: (b -> a -> b) -> b -> Product a -> b # foldl' :: (b -> a -> b) -> b -> Product a -> b # foldr1 :: (a -> a -> a) -> Product a -> a # foldl1 :: (a -> a -> a) -> Product a -> a # elem :: Eq a => a -> Product a -> Bool # maximum :: Ord a => Product a -> a # minimum :: Ord a => Product a -> a # | |
Traversable Product | Since: base-4.8.0.0 |
Distributive Product | |
Representable Product | |
MonadZip Product | Since: base-4.8.0.0 |
NFData1 Product | Since: deepseq-1.4.3.0 |
Defined in Control.DeepSeq | |
Apply Product | |
Traversable1 Product | |
Pointed Product | |
Defined in Data.Pointed | |
Copointed Product | |
Defined in Data.Copointed | |
Foldable1 Product | |
Bind Product | |
Extend Product | |
Bounded a => Bounded (Product a) | |
Eq a => Eq (Product a) | |
Data a => Data (Product a) | Since: base-4.8.0.0 |
Defined in Data.Data gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Product a -> c (Product a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Product a) # toConstr :: Product a -> Constr # dataTypeOf :: Product a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Product a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Product a)) # gmapT :: (forall b. Data b => b -> b) -> Product a -> Product a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Product a -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Product a -> r # gmapQ :: (forall d. Data d => d -> u) -> Product a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Product a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Product a -> m (Product a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Product a -> m (Product a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Product a -> m (Product a) # | |
Num a => Num (Product a) | |
Defined in Data.Semigroup.Internal | |
Ord a => Ord (Product a) | |
Defined in Data.Semigroup.Internal | |
Read a => Read (Product a) | |
Show a => Show (Product a) | |
Generic (Product a) | |
Num a => Semigroup (Product a) | Since: base-4.9.0.0 |
Num a => Monoid (Product a) | Since: base-2.1 |
NFData a => NFData (Product a) | Since: deepseq-1.4.0.0 |
Defined in Control.DeepSeq | |
Wrapped (Product a) | |
(Eq a, Num a) => AsEmpty (Product a) | |
Defined in Control.Lens.Empty | |
Upper a => Upper (Product a) | |
Defined in Data.Semilattice.Upper upperBound :: Product a # | |
Lower a => Lower (Product a) | |
Defined in Data.Semilattice.Lower lowerBound :: Product a # | |
Serialise a => Serialise (Product a) | Since: serialise-0.2.0.0 |
Generic1 Product | |
t ~ Product b => Rewrapped (Product a) t | |
Defined in Control.Lens.Wrapped | |
type Rep Product | |
Defined in Data.Functor.Rep | |
type Rep (Product a) | |
Defined in Data.Semigroup.Internal | |
type Unwrapped (Product a) | |
Defined in Control.Lens.Wrapped | |
type Rep1 Product | |
Defined in Data.Semigroup.Internal |