numhask-0.2.3.1: numeric classes

Safe HaskellNone
LanguageHaskell2010

NumHask.Data

Synopsis

Documentation

newtype Sum a Source #

Monoid under addition.

>>> getSum (Sum 1 <> Sum 2 <> mempty)
3

Constructors

Sum 

Fields

Instances

Monad Sum Source #

Since: 4.8.0.0

Methods

(>>=) :: Sum a -> (a -> Sum b) -> Sum b #

(>>) :: Sum a -> Sum b -> Sum b #

return :: a -> Sum a #

fail :: String -> Sum a #

Functor Sum Source # 

Methods

fmap :: (a -> b) -> Sum a -> Sum b #

(<$) :: a -> Sum b -> Sum a #

Applicative Sum Source #

Since: 4.8.0.0

Methods

pure :: a -> Sum a #

(<*>) :: Sum (a -> b) -> Sum a -> Sum b #

liftA2 :: (a -> b -> c) -> Sum a -> Sum b -> Sum c #

(*>) :: Sum a -> Sum b -> Sum b #

(<*) :: Sum a -> Sum b -> Sum a #

Bounded a => Bounded (Sum a) Source # 

Methods

minBound :: Sum a #

maxBound :: Sum a #

Eq a => Eq (Sum a) Source # 

Methods

(==) :: Sum a -> Sum a -> Bool #

(/=) :: Sum a -> Sum a -> Bool #

Ord a => Ord (Sum a) Source # 

Methods

compare :: Sum a -> Sum a -> Ordering #

(<) :: Sum a -> Sum a -> Bool #

(<=) :: Sum a -> Sum a -> Bool #

(>) :: Sum a -> Sum a -> Bool #

(>=) :: Sum a -> Sum a -> Bool #

max :: Sum a -> Sum a -> Sum a #

min :: Sum a -> Sum a -> Sum a #

Read a => Read (Sum a) Source # 
Show a => Show (Sum a) Source # 

Methods

showsPrec :: Int -> Sum a -> ShowS #

show :: Sum a -> String #

showList :: [Sum a] -> ShowS #

Generic (Sum a) Source # 

Associated Types

type Rep (Sum a) :: * -> * #

Methods

from :: Sum a -> Rep (Sum a) x #

to :: Rep (Sum a) x -> Sum a #

AdditiveMagma a => Semigroup (Sum a) Source # 

Methods

(<>) :: Sum a -> Sum a -> Sum a #

sconcat :: NonEmpty (Sum a) -> Sum a #

stimes :: Integral b => b -> Sum a -> Sum a #

AdditiveUnital a => Monoid (Sum a) Source # 

Methods

mempty :: Sum a #

mappend :: Sum a -> Sum a -> Sum a #

mconcat :: [Sum a] -> Sum a #

(AdditiveInvertible a, AdditiveUnital a) => AdditiveGroup (Sum a) Source # 

Methods

(-) :: Sum a -> Sum a -> Sum a Source #

(AdditiveUnital a, AdditiveMagma a) => Additive (Sum a) Source # 

Methods

(+) :: Sum a -> Sum a -> Sum a Source #

AdditiveInvertible a => AdditiveInvertible (Sum a) Source # 

Methods

negate :: Sum a -> Sum a Source #

AdditiveMagma a => AdditiveCommutative (Sum a) Source # 
AdditiveMagma a => AdditiveAssociative (Sum a) Source # 
AdditiveUnital a => AdditiveUnital (Sum a) Source # 

Methods

zero :: Sum a Source #

AdditiveMagma a => AdditiveMagma (Sum a) Source # 

Methods

plus :: Sum a -> Sum a -> Sum a Source #

Generic1 * Sum Source # 

Associated Types

type Rep1 Sum (f :: Sum -> *) :: k -> * #

Methods

from1 :: f a -> Rep1 Sum f a #

to1 :: Rep1 Sum f a -> f a #

type Rep (Sum a) Source # 
type Rep (Sum a) = D1 * (MetaData "Sum" "NumHask.Data" "numhask-0.2.3.1-5X1V1rZSUVsE9M1b0C2H1i" True) (C1 * (MetaCons "Sum" PrefixI True) (S1 * (MetaSel (Just Symbol "getSum") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * a)))
type Rep1 * Sum Source # 
type Rep1 * Sum = D1 * (MetaData "Sum" "NumHask.Data" "numhask-0.2.3.1-5X1V1rZSUVsE9M1b0C2H1i" True) (C1 * (MetaCons "Sum" PrefixI True) (S1 * (MetaSel (Just Symbol "getSum") NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1))

newtype Product a Source #

Monoid under multiplication.

>>> getProduct (Product 3 <> Product 4 <> mempty)
12

Constructors

Product 

Fields

Instances

Monad Product Source #

Since: 4.8.0.0

Methods

(>>=) :: Product a -> (a -> Product b) -> Product b #

(>>) :: Product a -> Product b -> Product b #

return :: a -> Product a #

fail :: String -> Product a #

Functor Product Source # 

Methods

fmap :: (a -> b) -> Product a -> Product b #

(<$) :: a -> Product b -> Product a #

Applicative Product Source #

Since: 4.8.0.0

Methods

pure :: a -> Product a #

(<*>) :: Product (a -> b) -> Product a -> Product b #

liftA2 :: (a -> b -> c) -> Product a -> Product b -> Product c #

(*>) :: Product a -> Product b -> Product b #

(<*) :: Product a -> Product b -> Product a #

Bounded a => Bounded (Product a) Source # 
Eq a => Eq (Product a) Source # 

Methods

(==) :: Product a -> Product a -> Bool #

(/=) :: Product a -> Product a -> Bool #

Ord a => Ord (Product a) Source # 

Methods

compare :: Product a -> Product a -> Ordering #

(<) :: Product a -> Product a -> Bool #

(<=) :: Product a -> Product a -> Bool #

(>) :: Product a -> Product a -> Bool #

(>=) :: Product a -> Product a -> Bool #

max :: Product a -> Product a -> Product a #

min :: Product a -> Product a -> Product a #

Read a => Read (Product a) Source # 
Show a => Show (Product a) Source # 

Methods

showsPrec :: Int -> Product a -> ShowS #

show :: Product a -> String #

showList :: [Product a] -> ShowS #

Generic (Product a) Source # 

Associated Types

type Rep (Product a) :: * -> * #

Methods

from :: Product a -> Rep (Product a) x #

to :: Rep (Product a) x -> Product a #

MultiplicativeMagma a => Semigroup (Product a) Source # 

Methods

(<>) :: Product a -> Product a -> Product a #

sconcat :: NonEmpty (Product a) -> Product a #

stimes :: Integral b => b -> Product a -> Product a #

MultiplicativeUnital a => Monoid (Product a) Source # 

Methods

mempty :: Product a #

mappend :: Product a -> Product a -> Product a #

mconcat :: [Product a] -> Product a #

(MultiplicativeUnital a, MultiplicativeInvertible a) => MultiplicativeGroup (Product a) Source # 

Methods

(/) :: Product a -> Product a -> Product a Source #

MultiplicativeUnital a => Multiplicative (Product a) Source # 

Methods

(*) :: Product a -> Product a -> Product a Source #

MultiplicativeInvertible a => MultiplicativeInvertible (Product a) Source # 

Methods

recip :: Product a -> Product a Source #

MultiplicativeMagma a => MultiplicativeCommutative (Product a) Source # 
MultiplicativeMagma a => MultiplicativeAssociative (Product a) Source # 
MultiplicativeUnital a => MultiplicativeUnital (Product a) Source # 

Methods

one :: Product a Source #

MultiplicativeMagma a => MultiplicativeMagma (Product a) Source # 

Methods

times :: Product a -> Product a -> Product a Source #

Generic1 * Product Source # 

Associated Types

type Rep1 Product (f :: Product -> *) :: k -> * #

Methods

from1 :: f a -> Rep1 Product f a #

to1 :: Rep1 Product f a -> f a #

type Rep (Product a) Source # 
type Rep (Product a) = D1 * (MetaData "Product" "NumHask.Data" "numhask-0.2.3.1-5X1V1rZSUVsE9M1b0C2H1i" True) (C1 * (MetaCons "Product" PrefixI True) (S1 * (MetaSel (Just Symbol "getProduct") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * a)))
type Rep1 * Product Source # 
type Rep1 * Product = D1 * (MetaData "Product" "NumHask.Data" "numhask-0.2.3.1-5X1V1rZSUVsE9M1b0C2H1i" True) (C1 * (MetaCons "Product" PrefixI True) (S1 * (MetaSel (Just Symbol "getProduct") NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1))