ideas-math-types-1.0: Common types for mathematical domain reasoners

Maintainerbastiaan.heeren@ou.nl
Stabilityprovisional
Portabilityportable (depends on ghc)
Safe HaskellNone
LanguageHaskell2010

Domain.Algebra.SmartGroup

Contents

Description

 
Synopsis

Smart datatypes

newtype Smart a Source #

Constructors

Smart 

Fields

Instances
Functor Smart Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

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

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

Applicative Smart Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

pure :: a -> Smart a #

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

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

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

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

Eq a => Eq (Smart a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

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

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

Ord a => Ord (Smart a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

compare :: Smart a -> Smart a -> Ordering #

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

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

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

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

max :: Smart a -> Smart a -> Smart a #

min :: Smart a -> Smart a -> Smart a #

Show a => Show (Smart a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

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

show :: Smart a -> String #

showList :: [Smart a] -> ShowS #

(CoMonoid a, Semigroup a) => Semigroup (Smart a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

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

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

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

(CoMonoid a, Monoid a) => Monoid (Smart a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

mempty :: Smart a #

mappend :: Smart a -> Smart a -> Smart a #

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

BoolValue a => BoolValue (Smart a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

true :: Smart a #

false :: Smart a #

fromBool :: Bool -> Smart a #

isTrue :: Smart a -> Bool #

isFalse :: Smart a -> Bool #

(Boolean a, CoBoolean a) => Boolean (Smart a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

(<&&>) :: Smart a -> Smart a -> Smart a #

(<||>) :: Smart a -> Smart a -> Smart a #

complement :: Smart a -> Smart a #

CoMonoidZero a => CoMonoidZero (Smart a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

isMonoidZero :: Smart a -> Bool Source #

CoMonoid a => CoMonoid (Smart a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

isEmpty :: Smart a -> Bool Source #

isAppend :: Smart a -> Maybe (Smart a, Smart a) Source #

(MonoidZero a, CoMonoid a) => MonoidZero (Smart a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

mzero :: Smart a Source #

newtype SmartZero a Source #

Constructors

SmartZero 

Fields

Instances
Functor SmartZero Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

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

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

Applicative SmartZero Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

pure :: a -> SmartZero a #

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

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

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

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

Eq a => Eq (SmartZero a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

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

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

Ord a => Ord (SmartZero a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Show a => Show (SmartZero a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

(CoMonoidZero a, MonoidZero a, Semigroup a) => Semigroup (SmartZero a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

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

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

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

(CoMonoidZero a, MonoidZero a) => Monoid (SmartZero a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

CoMonoidZero a => CoMonoidZero (SmartZero a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

CoMonoid a => CoMonoid (SmartZero a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

(MonoidZero a, CoMonoidZero a) => MonoidZero (SmartZero a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

mzero :: SmartZero a Source #

newtype SmartGroup a Source #

Constructors

SmartGroup 

Fields

Instances
Functor SmartGroup Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

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

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

Applicative SmartGroup Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

pure :: a -> SmartGroup a #

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

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

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

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

Eq a => Eq (SmartGroup a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

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

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

Ord a => Ord (SmartGroup a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Show a => Show (SmartGroup a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

(CoGroup a, Group a) => Semigroup (SmartGroup a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

(CoGroup a, Group a) => Monoid (SmartGroup a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

CoMonoidZero a => CoMonoidZero (SmartGroup a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

CoGroup a => CoGroup (SmartGroup a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

CoMonoid a => CoMonoid (SmartGroup a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

(MonoidZero a, CoGroup a, Group a) => MonoidZero (SmartGroup a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

mzero :: SmartGroup a Source #

(CoGroup a, Group a) => Group (SmartGroup a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

newtype SmartField a Source #

Constructors

SmartField 

Fields

Instances
Functor SmartField Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

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

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

Applicative SmartField Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

Methods

pure :: a -> SmartField a #

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

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

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

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

CoField a => CoField (SmartField a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

CoRing a => CoRing (SmartField a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

CoSemiRing a => CoSemiRing (SmartField a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

(CoField a, Field a) => Field (SmartField a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

(CoField a, Field a) => Ring (SmartField a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

(CoField a, Field a) => SemiRing (SmartField a) Source # 
Instance details

Defined in Domain.Algebra.SmartGroup

(.+.) :: (CoField a, Field a) => a -> a -> a infixl 6 Source #

(.-.) :: (CoField a, Field a) => a -> a -> a infixl 6 Source #

neg :: (CoField a, Field a) => a -> a Source #

(.*.) :: (CoField a, Field a) => a -> a -> a infixl 7 Source #

(./.) :: (CoField a, Field a) => a -> a -> a infixl 7 Source #

Smart booleans

(.&&.) :: (Boolean a, CoBoolean a) => a -> a -> a infixr 5 Source #

(.||.) :: (Boolean a, CoBoolean a) => a -> a -> a infixr 4 Source #