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

Maintainer bastiaan.heeren@ou.nl provisional portable (depends on ghc) None Haskell2010

Domain.Algebra.Group

Description

Synopsis

# Monoids

class Semigroup a => Monoid a where #

The class of monoids (types with an associative binary operation that has an identity). Instances should satisfy the following laws:

• x <> mempty = x
• mempty <> x = x
• x <> (y <> z) = (x <> y) <> z (Semigroup law)
• mconcat = foldr '(<>)' mempty

The method names refer to the monoid of lists under concatenation, but there are many other instances.

Some types can be viewed as a monoid in more than one way, e.g. both addition and multiplication on numbers. In such cases we often define newtypes and make those instances of Monoid, e.g. Sum and Product.

NOTE: Semigroup is a superclass of Monoid since base-4.11.0.0.

Minimal complete definition

mempty

Methods

mempty :: a #

Identity of mappend

mappend :: a -> a -> a #

An associative operation

NOTE: This method is redundant and has the default implementation mappend = '(<>)' since base-4.11.0.0.

mconcat :: [a] -> a #

Fold a list using the monoid.

For most types, the default definition for mconcat will be used, but the function is included in the class definition so that an optimized version can be provided for specific types.

Instances
 Since: base-2.1 Instance detailsDefined in GHC.Base Methodsmconcat :: [Ordering] -> Ordering # Monoid () Since: base-2.1 Instance detailsDefined in GHC.Base Methodsmempty :: () #mappend :: () -> () -> () #mconcat :: [()] -> () # Since: base-2.1 Instance detailsDefined in Data.Semigroup.Internal Methodsmappend :: All -> All -> All #mconcat :: [All] -> All # Since: base-2.1 Instance detailsDefined in Data.Semigroup.Internal Methodsmappend :: Any -> Any -> Any #mconcat :: [Any] -> Any # Instance detailsDefined in Data.ByteString.Lazy.Internal Methodsmconcat :: [ByteString] -> ByteString # Instance detailsDefined in Data.ByteString.Internal Methodsmconcat :: [ByteString] -> ByteString # Instance detailsDefined in Data.IntSet.Internal Methodsmconcat :: [IntSet] -> IntSet # Instance detailsDefined in Ideas.Common.Strategy.Configuration Methodsmconcat :: [StrategyCfg] -> StrategyCfg # Instance detailsDefined in Ideas.Common.Environment Methodsmconcat :: [Environment] -> Environment # Instance detailsDefined in Ideas.Common.Traversal.Navigator Methodsmconcat :: [Location] -> Location # Instance detailsDefined in Ideas.Utils.TestSuite Methodsmconcat :: [TestSuite] -> TestSuite # Instance detailsDefined in Ideas.Utils.TestSuite Methodsmconcat :: [Result] -> Result # Instance detailsDefined in Ideas.Utils.TestSuite Methodsmconcat :: [Message] -> Message # Instance detailsDefined in Ideas.Utils.TestSuite Methodsmconcat :: [Status] -> Status # Instance detailsDefined in Ideas.Utils.TestSuite Methodsmconcat :: [Rating] -> Rating # Instance detailsDefined in Ideas.Common.Id Methodsmappend :: Id -> Id -> Id #mconcat :: [Id] -> Id # Instance detailsDefined in Ideas.Text.Latex Methodsmappend :: Latex -> Latex -> Latex #mconcat :: [Latex] -> Latex # Monoid [a] Since: base-2.1 Instance detailsDefined in GHC.Base Methodsmempty :: [a] #mappend :: [a] -> [a] -> [a] #mconcat :: [[a]] -> [a] # Semigroup a => Monoid (Maybe a) Lift a semigroup into Maybe forming a Monoid according to http://en.wikipedia.org/wiki/Monoid: "Any semigroup S may be turned into a monoid simply by adjoining an element e not in S and defining e*e = e and e*s = s = s*e for all s ∈ S."Since 4.11.0: constraint on inner a value generalised from Monoid to Semigroup.Since: base-2.1 Instance detailsDefined in GHC.Base Methodsmempty :: Maybe a #mappend :: Maybe a -> Maybe a -> Maybe a #mconcat :: [Maybe a] -> Maybe a # Monoid a => Monoid (IO a) Since: base-4.9.0.0 Instance detailsDefined in GHC.Base Methodsmempty :: IO a #mappend :: IO a -> IO a -> IO a #mconcat :: [IO a] -> IO a # Monoid p => Monoid (Par1 p) Since: base-4.12.0.0 Instance detailsDefined in GHC.Generics Methodsmempty :: Par1 p #mappend :: Par1 p -> Par1 p -> Par1 p #mconcat :: [Par1 p] -> Par1 p # (Ord a, Bounded a) => Monoid (Min a) Since: base-4.9.0.0 Instance detailsDefined in Data.Semigroup Methodsmempty :: Min a #mappend :: Min a -> Min a -> Min a #mconcat :: [Min a] -> Min a # (Ord a, Bounded a) => Monoid (Max a) Since: base-4.9.0.0 Instance detailsDefined in Data.Semigroup Methodsmempty :: Max a #mappend :: Max a -> Max a -> Max a #mconcat :: [Max a] -> Max a # Monoid m => Monoid (WrappedMonoid m) Since: base-4.9.0.0 Instance detailsDefined in Data.Semigroup Methodsmconcat :: [WrappedMonoid m] -> WrappedMonoid m # Semigroup a => Monoid (Option a) Since: base-4.9.0.0 Instance detailsDefined in Data.Semigroup Methodsmappend :: Option a -> Option a -> Option a #mconcat :: [Option a] -> Option a # Monoid a => Monoid (Identity a) Since: base-4.9.0.0 Instance detailsDefined in Data.Functor.Identity Methodsmappend :: Identity a -> Identity a -> Identity a #mconcat :: [Identity a] -> Identity a # Monoid (First a) Since: base-2.1 Instance detailsDefined in Data.Monoid Methodsmempty :: First a #mappend :: First a -> First a -> First a #mconcat :: [First a] -> First a # Monoid (Last a) Since: base-2.1 Instance detailsDefined in Data.Monoid Methodsmempty :: Last a #mappend :: Last a -> Last a -> Last a #mconcat :: [Last a] -> Last a # Monoid a => Monoid (Dual a) Since: base-2.1 Instance detailsDefined in Data.Semigroup.Internal Methodsmempty :: Dual a #mappend :: Dual a -> Dual a -> Dual a #mconcat :: [Dual a] -> Dual a # Monoid (Endo a) Since: base-2.1 Instance detailsDefined in Data.Semigroup.Internal Methodsmempty :: Endo a #mappend :: Endo a -> Endo a -> Endo a #mconcat :: [Endo a] -> Endo a # Num a => Monoid (Sum a) Since: base-2.1 Instance detailsDefined in Data.Semigroup.Internal Methodsmempty :: Sum a #mappend :: Sum a -> Sum a -> Sum a #mconcat :: [Sum a] -> Sum a # Num a => Monoid (Product a) Since: base-2.1 Instance detailsDefined in Data.Semigroup.Internal Methodsmappend :: Product a -> Product a -> Product a #mconcat :: [Product a] -> Product a # Monoid a => Monoid (Down a) Since: base-4.11.0.0 Instance detailsDefined in Data.Ord Methodsmempty :: Down a #mappend :: Down a -> Down a -> Down a #mconcat :: [Down a] -> Down a # Monoid (IntMap a) Instance detailsDefined in Data.IntMap.Internal Methodsmappend :: IntMap a -> IntMap a -> IntMap a #mconcat :: [IntMap a] -> IntMap a # Monoid (Seq a) Instance detailsDefined in Data.Sequence.Internal Methodsmempty :: Seq a #mappend :: Seq a -> Seq a -> Seq a #mconcat :: [Seq a] -> Seq a # Ord a => Monoid (Set a) Instance detailsDefined in Data.Set.Internal Methodsmempty :: Set a #mappend :: Set a -> Set a -> Set a #mconcat :: [Set a] -> Set a # Monoid (Option a) Instance detailsDefined in Ideas.Common.Strategy.Traversal Methodsmappend :: Option a -> Option a -> Option a #mconcat :: [Option a] -> Option a # Monoid (Prefix a) Instance detailsDefined in Ideas.Common.Strategy.Prefix Methodsmappend :: Prefix a -> Prefix a -> Prefix a #mconcat :: [Prefix a] -> Prefix a # Instance detailsDefined in Ideas.Common.Rule.Recognizer Methodsmappend :: Recognizer a -> Recognizer a -> Recognizer a #mconcat :: [Recognizer a] -> Recognizer a # Instance detailsDefined in Ideas.Common.Examples Methodsmappend :: Examples a -> Examples a -> Examples a #mconcat :: [Examples a] -> Examples a # Monoid a => Monoid (WithZero a) Source # Instance detailsDefined in Domain.Algebra.Group Methodsmappend :: WithZero a -> WithZero a -> WithZero a #mconcat :: [WithZero a] -> WithZero a # Monoid (MergeSet a) Instance detailsDefined in Data.Set.Internal Methodsmempty :: MergeSet a #mappend :: MergeSet a -> MergeSet a -> MergeSet a #mconcat :: [MergeSet a] -> MergeSet a # SemiRing a => Monoid (Multiplicative a) Source # Instance detailsDefined in Domain.Algebra.Field Methodsmconcat :: [Multiplicative a] -> Multiplicative a # SemiRing a => Monoid (Additive a) Source # Instance detailsDefined in Domain.Algebra.Field Methodsmappend :: Additive a -> Additive a -> Additive a #mconcat :: [Additive a] -> Additive a # Boolean a => Monoid (Or a) Source # Instance detailsDefined in Domain.Algebra.Boolean Methodsmempty :: Or a #mappend :: Or a -> Or a -> Or a #mconcat :: [Or a] -> Or a # Boolean a => Monoid (And a) Source # Instance detailsDefined in Domain.Algebra.Boolean Methodsmempty :: And a #mappend :: And a -> And a -> And a #mconcat :: [And a] -> And a # (CoGroup a, Group a) => Monoid (SmartGroup a) Source # Instance detailsDefined in Domain.Algebra.SmartGroup Methodsmappend :: SmartGroup a -> SmartGroup a -> SmartGroup a #mconcat :: [SmartGroup a] -> SmartGroup a # (CoMonoidZero a, MonoidZero a) => Monoid (SmartZero a) Source # Instance detailsDefined in Domain.Algebra.SmartGroup Methodsmappend :: SmartZero a -> SmartZero a -> SmartZero a #mconcat :: [SmartZero a] -> SmartZero a # (CoMonoid a, Monoid a) => Monoid (Smart a) Source # Instance detailsDefined in Domain.Algebra.SmartGroup Methodsmempty :: Smart a #mappend :: Smart a -> Smart a -> Smart a #mconcat :: [Smart a] -> Smart a # Ord a => Monoid (OrSet a) Source # Instance detailsDefined in Domain.Math.Data.OrList Methodsmempty :: OrSet a #mappend :: OrSet a -> OrSet a -> OrSet a #mconcat :: [OrSet a] -> OrSet a # Monoid (OrList a) Source # Instance detailsDefined in Domain.Math.Data.OrList Methodsmappend :: OrList a -> OrList a -> OrList a #mconcat :: [OrList a] -> OrList a # Monoid b => Monoid (a -> b) Since: base-2.1 Instance detailsDefined in GHC.Base Methodsmempty :: a -> b #mappend :: (a -> b) -> (a -> b) -> a -> b #mconcat :: [a -> b] -> a -> b # Monoid (U1 p) Since: base-4.12.0.0 Instance detailsDefined in GHC.Generics Methodsmempty :: U1 p #mappend :: U1 p -> U1 p -> U1 p #mconcat :: [U1 p] -> U1 p # (Monoid a, Monoid b) => Monoid (a, b) Since: base-2.1 Instance detailsDefined in GHC.Base Methodsmempty :: (a, b) #mappend :: (a, b) -> (a, b) -> (a, b) #mconcat :: [(a, b)] -> (a, b) # Monoid (Proxy s) Since: base-4.7.0.0 Instance detailsDefined in Data.Proxy Methodsmempty :: Proxy s #mappend :: Proxy s -> Proxy s -> Proxy s #mconcat :: [Proxy s] -> Proxy s # Ord k => Monoid (Map k v) Instance detailsDefined in Data.Map.Internal Methodsmempty :: Map k v #mappend :: Map k v -> Map k v -> Map k v #mconcat :: [Map k v] -> Map k v # Monoid (Trans a b) Instance detailsDefined in Ideas.Common.Rule.Transformation Methodsmempty :: Trans a b #mappend :: Trans a b -> Trans a b -> Trans a b #mconcat :: [Trans a b] -> Trans a b # Monoid (f p) => Monoid (Rec1 f p) Since: base-4.12.0.0 Instance detailsDefined in GHC.Generics Methodsmempty :: Rec1 f p #mappend :: Rec1 f p -> Rec1 f p -> Rec1 f p #mconcat :: [Rec1 f p] -> Rec1 f p # (Monoid a, Monoid b, Monoid c) => Monoid (a, b, c) Since: base-2.1 Instance detailsDefined in GHC.Base Methodsmempty :: (a, b, c) #mappend :: (a, b, c) -> (a, b, c) -> (a, b, c) #mconcat :: [(a, b, c)] -> (a, b, c) # Monoid a => Monoid (Const a b) Since: base-4.9.0.0 Instance detailsDefined in Data.Functor.Const Methodsmempty :: Const a b #mappend :: Const a b -> Const a b -> Const a b #mconcat :: [Const a b] -> Const a b # (Applicative f, Monoid a) => Monoid (Ap f a) Since: base-4.12.0.0 Instance detailsDefined in Data.Monoid Methodsmempty :: Ap f a #mappend :: Ap f a -> Ap f a -> Ap f a #mconcat :: [Ap f a] -> Ap f a # Alternative f => Monoid (Alt f a) Since: base-4.8.0.0 Instance detailsDefined in Data.Semigroup.Internal Methodsmempty :: Alt f a #mappend :: Alt f a -> Alt f a -> Alt f a #mconcat :: [Alt f a] -> Alt f a # Monoid a => Monoid (Constant a b) Instance detailsDefined in Data.Functor.Constant Methodsmempty :: Constant a b #mappend :: Constant a b -> Constant a b -> Constant a b #mconcat :: [Constant a b] -> Constant a b # Monoid c => Monoid (K1 i c p) Since: base-4.12.0.0 Instance detailsDefined in GHC.Generics Methodsmempty :: K1 i c p #mappend :: K1 i c p -> K1 i c p -> K1 i c p #mconcat :: [K1 i c p] -> K1 i c p # (Monoid (f p), Monoid (g p)) => Monoid ((f :*: g) p) Since: base-4.12.0.0 Instance detailsDefined in GHC.Generics Methodsmempty :: (f :*: g) p #mappend :: (f :*: g) p -> (f :*: g) p -> (f :*: g) p #mconcat :: [(f :*: g) p] -> (f :*: g) p # (Monoid a, Monoid b, Monoid c, Monoid d) => Monoid (a, b, c, d) Since: base-2.1 Instance detailsDefined in GHC.Base Methodsmempty :: (a, b, c, d) #mappend :: (a, b, c, d) -> (a, b, c, d) -> (a, b, c, d) #mconcat :: [(a, b, c, d)] -> (a, b, c, d) # (Monoid a, Semigroup (ParsecT s u m a)) => Monoid (ParsecT s u m a) The Monoid instance for ParsecT is used for the same purposes as the Semigroup instance.Since: parsec-3.1.12 Instance detailsDefined in Text.Parsec.Prim Methodsmempty :: ParsecT s u m a #mappend :: ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a #mconcat :: [ParsecT s u m a] -> ParsecT s u m a # Monoid (f p) => Monoid (M1 i c f p) Since: base-4.12.0.0 Instance detailsDefined in GHC.Generics Methodsmempty :: M1 i c f p #mappend :: M1 i c f p -> M1 i c f p -> M1 i c f p #mconcat :: [M1 i c f p] -> M1 i c f p # Monoid (f (g p)) => Monoid ((f :.: g) p) Since: base-4.12.0.0 Instance detailsDefined in GHC.Generics Methodsmempty :: (f :.: g) p #mappend :: (f :.: g) p -> (f :.: g) p -> (f :.: g) p #mconcat :: [(f :.: g) p] -> (f :.: g) p # (Monoid a, Monoid b, Monoid c, Monoid d, Monoid e) => Monoid (a, b, c, d, e) Since: base-2.1 Instance detailsDefined in GHC.Base Methodsmempty :: (a, b, c, d, e) #mappend :: (a, b, c, d, e) -> (a, b, c, d, e) -> (a, b, c, d, e) #mconcat :: [(a, b, c, d, e)] -> (a, b, c, d, e) #

(<>) :: Semigroup a => a -> a -> a infixr 6 #

An associative operation.

# Groups

class Monoid a => Group a where Source #

Minimal complete definition: inverse or appendInverse

Minimal complete definition

Nothing

Methods

inverse :: a -> a Source #

appendInv :: a -> a -> a Source #

Instances
 Field a => Group (Multiplicative a) Source # Instance detailsDefined in Domain.Algebra.Field Methods Ring a => Group (Additive a) Source # Instance detailsDefined in Domain.Algebra.Field MethodsappendInv :: Additive a -> Additive a -> Additive a Source # (CoGroup a, Group a) => Group (SmartGroup a) Source # Instance detailsDefined in Domain.Algebra.SmartGroup Methods

(<>-) :: Group a => a -> a -> a infixl 6 Source #

# Monoids with a zero element

class Monoid a => MonoidZero a where Source #

Methods

mzero :: a Source #

Instances
 Monoid a => MonoidZero (WithZero a) Source # Instance detailsDefined in Domain.Algebra.Group Methods Source # Instance detailsDefined in Domain.Algebra.Field Methods Boolean a => MonoidZero (Or a) Source # Instance detailsDefined in Domain.Algebra.Boolean Methods Boolean a => MonoidZero (And a) Source # Instance detailsDefined in Domain.Algebra.Boolean Methods (MonoidZero a, CoGroup a, Group a) => MonoidZero (SmartGroup a) Source # Instance detailsDefined in Domain.Algebra.SmartGroup Methods (MonoidZero a, CoMonoidZero a) => MonoidZero (SmartZero a) Source # Instance detailsDefined in Domain.Algebra.SmartGroup Methods (MonoidZero a, CoMonoid a) => MonoidZero (Smart a) Source # Instance detailsDefined in Domain.Algebra.SmartGroup Methods Ord a => MonoidZero (OrSet a) Source # Instance detailsDefined in Domain.Math.Data.OrList Methods Source # Instance detailsDefined in Domain.Math.Data.OrList Methods

data WithZero a Source #

Instances
 Source # Instance detailsDefined in Domain.Algebra.Group Methodsfmap :: (a -> b) -> WithZero a -> WithZero b #(<\$) :: a -> WithZero b -> WithZero a # Source # Instance detailsDefined in Domain.Algebra.Group Methodspure :: a -> WithZero a #(<*>) :: WithZero (a -> b) -> WithZero a -> WithZero b #liftA2 :: (a -> b -> c) -> WithZero a -> WithZero b -> WithZero c #(*>) :: WithZero a -> WithZero b -> WithZero b #(<*) :: WithZero a -> WithZero b -> WithZero a # Source # Instance detailsDefined in Domain.Algebra.Group Methodsfold :: Monoid m => WithZero m -> m #foldMap :: Monoid m => (a -> m) -> WithZero a -> m #foldr :: (a -> b -> b) -> b -> WithZero a -> b #foldr' :: (a -> b -> b) -> b -> WithZero a -> b #foldl :: (b -> a -> b) -> b -> WithZero a -> b #foldl' :: (b -> a -> b) -> b -> WithZero a -> b #foldr1 :: (a -> a -> a) -> WithZero a -> a #foldl1 :: (a -> a -> a) -> WithZero a -> a #toList :: WithZero a -> [a] #null :: WithZero a -> Bool #length :: WithZero a -> Int #elem :: Eq a => a -> WithZero a -> Bool #maximum :: Ord a => WithZero a -> a #minimum :: Ord a => WithZero a -> a #sum :: Num a => WithZero a -> a #product :: Num a => WithZero a -> a # Source # Instance detailsDefined in Domain.Algebra.Group Methodstraverse :: Applicative f => (a -> f b) -> WithZero a -> f (WithZero b) #sequenceA :: Applicative f => WithZero (f a) -> f (WithZero a) #mapM :: Monad m => (a -> m b) -> WithZero a -> m (WithZero b) #sequence :: Monad m => WithZero (m a) -> m (WithZero a) # Eq a => Eq (WithZero a) Source # Instance detailsDefined in Domain.Algebra.Group Methods(==) :: WithZero a -> WithZero a -> Bool #(/=) :: WithZero a -> WithZero a -> Bool # Ord a => Ord (WithZero a) Source # Instance detailsDefined in Domain.Algebra.Group Methodscompare :: WithZero a -> WithZero a -> Ordering #(<) :: WithZero a -> WithZero a -> Bool #(<=) :: WithZero a -> WithZero a -> Bool #(>) :: WithZero a -> WithZero a -> Bool #(>=) :: WithZero a -> WithZero a -> Bool #max :: WithZero a -> WithZero a -> WithZero a #min :: WithZero a -> WithZero a -> WithZero a # Semigroup a => Semigroup (WithZero a) Source # Instance detailsDefined in Domain.Algebra.Group Methods(<>) :: WithZero a -> WithZero a -> WithZero a #sconcat :: NonEmpty (WithZero a) -> WithZero a #stimes :: Integral b => b -> WithZero a -> WithZero a # Monoid a => Monoid (WithZero a) Source # Instance detailsDefined in Domain.Algebra.Group Methodsmappend :: WithZero a -> WithZero a -> WithZero a #mconcat :: [WithZero a] -> WithZero a # CoMonoid a => CoMonoidZero (WithZero a) Source # Instance detailsDefined in Domain.Algebra.Group Methods CoMonoid a => CoMonoid (WithZero a) Source # Instance detailsDefined in Domain.Algebra.Group MethodsisAppend :: WithZero a -> Maybe (WithZero a, WithZero a) Source # Monoid a => MonoidZero (WithZero a) Source # Instance detailsDefined in Domain.Algebra.Group Methods

# CoMonoid, CoGroup, and CoMonoidZero (for matching)

class CoMonoid a where Source #

Methods

isEmpty :: a -> Bool Source #

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

Instances
 CoMonoid [a] Source # Instance detailsDefined in Domain.Algebra.Group MethodsisEmpty :: [a] -> Bool Source #isAppend :: [a] -> Maybe ([a], [a]) Source # CoMonoid (Set a) Source # Instance detailsDefined in Domain.Algebra.Group MethodsisEmpty :: Set a -> Bool Source #isAppend :: Set a -> Maybe (Set a, Set a) Source # CoMonoid a => CoMonoid (WithZero a) Source # Instance detailsDefined in Domain.Algebra.Group MethodsisAppend :: WithZero a -> Maybe (WithZero a, WithZero a) Source # Source # Instance detailsDefined in Domain.Algebra.Field Methods CoSemiRing a => CoMonoid (Additive a) Source # Instance detailsDefined in Domain.Algebra.Field MethodsisAppend :: Additive a -> Maybe (Additive a, Additive a) Source # CoBoolean a => CoMonoid (Or a) Source # Instance detailsDefined in Domain.Algebra.Boolean MethodsisEmpty :: Or a -> Bool Source #isAppend :: Or a -> Maybe (Or a, Or a) Source # CoBoolean a => CoMonoid (And a) Source # Instance detailsDefined in Domain.Algebra.Boolean MethodsisEmpty :: And a -> Bool Source #isAppend :: And a -> Maybe (And a, And a) Source # CoMonoid a => CoMonoid (SmartGroup a) Source # Instance detailsDefined in Domain.Algebra.SmartGroup Methods CoMonoid a => CoMonoid (SmartZero a) Source # Instance detailsDefined in Domain.Algebra.SmartGroup Methods CoMonoid a => CoMonoid (Smart a) Source # Instance detailsDefined in Domain.Algebra.SmartGroup MethodsisEmpty :: Smart a -> Bool Source #isAppend :: Smart a -> Maybe (Smart a, Smart a) Source # Source # Instance detailsDefined in Domain.Math.Data.OrList MethodsisEmpty :: OrSet a -> Bool Source #isAppend :: OrSet a -> Maybe (OrSet a, OrSet a) Source # Source # Instance detailsDefined in Domain.Math.Data.OrList MethodsisEmpty :: OrList a -> Bool Source #isAppend :: OrList a -> Maybe (OrList a, OrList a) Source #

class CoMonoid a => CoGroup a where Source #

Minimal complete definition

isInverse

Methods

isInverse :: a -> Maybe a Source #

isAppendInv :: a -> Maybe (a, a) Source #

Instances
 CoField a => CoGroup (Multiplicative a) Source # Instance detailsDefined in Domain.Algebra.Field Methods CoRing a => CoGroup (Additive a) Source # Instance detailsDefined in Domain.Algebra.Field Methods CoGroup a => CoGroup (SmartGroup a) Source # Instance detailsDefined in Domain.Algebra.SmartGroup Methods

class CoMonoid a => CoMonoidZero a where Source #

Methods

isMonoidZero :: a -> Bool Source #

Instances
 CoMonoid a => CoMonoidZero (WithZero a) Source # Instance detailsDefined in Domain.Algebra.Group Methods Source # Instance detailsDefined in Domain.Algebra.Field Methods CoBoolean a => CoMonoidZero (Or a) Source # Instance detailsDefined in Domain.Algebra.Boolean Methods CoBoolean a => CoMonoidZero (And a) Source # Instance detailsDefined in Domain.Algebra.Boolean Methods Source # Instance detailsDefined in Domain.Algebra.SmartGroup Methods Source # Instance detailsDefined in Domain.Algebra.SmartGroup Methods Source # Instance detailsDefined in Domain.Algebra.SmartGroup Methods Source # Instance detailsDefined in Domain.Math.Data.OrList Methods Source # Instance detailsDefined in Domain.Math.Data.OrList Methods

associativeList :: CoMonoid a => a -> [a] Source #