rings-0.0.3: Ring-like objects.

Safe HaskellSafe
LanguageHaskell2010

Data.Group

Synopsis

Documentation

class Semigroup a where #

The class of semigroups (types with an associative binary operation).

Instances should satisfy the associativity law:

Since: base-4.9.0.0

Minimal complete definition

(<>)

Methods

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

An associative operation.

sconcat :: NonEmpty a -> a #

Reduce a non-empty list with <>

The default definition should be sufficient, but this can be overridden for efficiency.

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

Repeat a value n times.

Given that this works on a Semigroup it is allowed to fail if you request 0 or fewer repetitions, and the default definition will do so.

By making this a member of the class, idempotent semigroups and monoids can upgrade this to execute in O(1) by picking stimes = stimesIdempotent or stimes = stimesIdempotentMonoid respectively.

Instances
Semigroup Ordering

Since: base-4.9.0.0

Instance details

Defined in GHC.Base

Semigroup ()

Since: base-4.9.0.0

Instance details

Defined in GHC.Base

Methods

(<>) :: () -> () -> () #

sconcat :: NonEmpty () -> () #

stimes :: Integral b => b -> () -> () #

Semigroup Void

Since: base-4.9.0.0

Instance details

Defined in Data.Void

Methods

(<>) :: Void -> Void -> Void #

sconcat :: NonEmpty Void -> Void #

stimes :: Integral b => b -> Void -> Void #

Semigroup All

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup.Internal

Methods

(<>) :: All -> All -> All #

sconcat :: NonEmpty All -> All #

stimes :: Integral b => b -> All -> All #

Semigroup Any

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup.Internal

Methods

(<>) :: Any -> Any -> Any #

sconcat :: NonEmpty Any -> Any #

stimes :: Integral b => b -> Any -> Any #

Semigroup IntSet

Since: containers-0.5.7

Instance details

Defined in Data.IntSet.Internal

Semigroup Doc 
Instance details

Defined in Text.PrettyPrint.HughesPJ

Methods

(<>) :: Doc -> Doc -> Doc #

sconcat :: NonEmpty Doc -> Doc #

stimes :: Integral b => b -> Doc -> Doc #

Semigroup [a]

Since: base-4.9.0.0

Instance details

Defined in GHC.Base

Methods

(<>) :: [a] -> [a] -> [a] #

sconcat :: NonEmpty [a] -> [a] #

stimes :: Integral b => b -> [a] -> [a] #

Semigroup a => Semigroup (Maybe a)

Since: base-4.9.0.0

Instance details

Defined in GHC.Base

Methods

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

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

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

Semigroup a => Semigroup (IO a)

Since: base-4.10.0.0

Instance details

Defined in GHC.Base

Methods

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

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

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

Semigroup p => Semigroup (Par1 p)

Since: base-4.12.0.0

Instance details

Defined in GHC.Generics

Methods

(<>) :: Par1 p -> Par1 p -> Par1 p #

sconcat :: NonEmpty (Par1 p) -> Par1 p #

stimes :: Integral b => b -> Par1 p -> Par1 p #

Ord a => Semigroup (Min a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

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

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

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

Ord a => Semigroup (Max a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

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

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

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

Semigroup (First a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

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

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

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

Semigroup (Last a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

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

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

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

Monoid m => Semigroup (WrappedMonoid m)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Semigroup a => Semigroup (Option a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

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

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

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

Semigroup a => Semigroup (Identity a)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Identity

Methods

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

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

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

Semigroup (First a)

Since: base-4.9.0.0

Instance details

Defined in Data.Monoid

Methods

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

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

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

Semigroup (Last a)

Since: base-4.9.0.0

Instance details

Defined in Data.Monoid

Methods

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

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

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

Semigroup a => Semigroup (Dual a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup.Internal

Methods

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

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

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

Semigroup (Endo a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup.Internal

Methods

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

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

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

Num a => Semigroup (Sum a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup.Internal

Methods

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

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

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

Num a => Semigroup (Product a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup.Internal

Methods

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

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

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

Semigroup a => Semigroup (Down a)

Since: base-4.11.0.0

Instance details

Defined in Data.Ord

Methods

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

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

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

Semigroup (NonEmpty a)

Since: base-4.9.0.0

Instance details

Defined in GHC.Base

Methods

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

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

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

Semigroup (IntMap a)

Since: containers-0.5.7

Instance details

Defined in Data.IntMap.Internal

Methods

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

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

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

Semigroup (Seq a)

Since: containers-0.5.7

Instance details

Defined in Data.Sequence.Internal

Methods

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

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

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

Ord a => Semigroup (Set a)

Since: containers-0.5.7

Instance details

Defined in Data.Set.Internal

Methods

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

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

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

Semigroup (Doc a) 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

Methods

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

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

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

(Hashable a, Eq a) => Semigroup (HashSet a) 
Instance details

Defined in Data.HashSet.Base

Methods

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

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

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

Semigroup a => Semigroup (JoinWith a) 
Instance details

Defined in Data.Semigroup.Foldable

Methods

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

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

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

Semigroup (Multiplicative Bool) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative Double) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative Float) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

(Multiplicative - Semigroup) b => Semigroup (Multiplicative (a -> b)) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Methods

(<>) :: Multiplicative (a -> b) -> Multiplicative (a -> b) -> Multiplicative (a -> b) #

sconcat :: NonEmpty (Multiplicative (a -> b)) -> Multiplicative (a -> b) #

stimes :: Integral b0 => b0 -> Multiplicative (a -> b) -> Multiplicative (a -> b) #

Semigroup (Multiplicative Int) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative Int8) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative Int16) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative Int32) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative Int64) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative Integer) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative Natural) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

(Additive - Semigroup) a => Semigroup (Multiplicative [a]) Source # 
Instance details

Defined in Data.Semigroup.Additive

(Multiplicative - Semigroup) a => Semigroup (Multiplicative (Maybe a)) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

(Multiplicative - Semigroup) a => Semigroup (Multiplicative (Ratio a)) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative Word) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative Word8) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative Word16) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative Word32) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative Word64) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

((Multiplicative - Semigroup) a, (Multiplicative - Semigroup) b) => Semigroup (Multiplicative (Either a b)) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative ()) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

((Multiplicative - Semigroup) a, (Multiplicative - Semigroup) b) => Semigroup (Multiplicative (a, b)) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Methods

(<>) :: Multiplicative (a, b) -> Multiplicative (a, b) -> Multiplicative (a, b) #

sconcat :: NonEmpty (Multiplicative (a, b)) -> Multiplicative (a, b) #

stimes :: Integral b0 => b0 -> Multiplicative (a, b) -> Multiplicative (a, b) #

((Additive - Group) a, (Multiplicative - Semigroup) a) => Semigroup (Multiplicative (Complex a)) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Multiplicative Uni) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative Deci) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative Centi) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative Milli) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative Micro) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative Nano) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative Pico) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

(Additive - Semigroup) a => Semigroup (Multiplicative (Min a)) Source # 
Instance details

Defined in Data.Semigroup.Additive

(Multiplicative - Semigroup) a => Semigroup (Multiplicative (Max a)) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

(Multiplicative - Semigroup) a => Semigroup (Multiplicative (Dual a)) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

(Multiplicative - Semigroup) a => Semigroup (Multiplicative (Down a)) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative CFloat) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative CDouble) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

(Additive - Semigroup) a => Semigroup (Multiplicative (NonEmpty a)) Source # 
Instance details

Defined in Data.Semigroup.Additive

(Multiplicative - Semigroup) a => Semigroup (Multiplicative (IntMap a)) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Semigroup (Multiplicative IntSet) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

(Ord k, (Multiplicative - Semigroup) a) => Semigroup (Multiplicative (Map k a)) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Ord a => Semigroup (Multiplicative (Set a)) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Ring a => Semigroup (Multiplicative (Quaternion a)) Source # 
Instance details

Defined in Data.Algebra.Quaternion

Semigroup (MergeSet a) 
Instance details

Defined in Data.Set.Internal

Methods

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

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

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

Semigroup (Additive Bool) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive Double) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive Float) Source # 
Instance details

Defined in Data.Semigroup.Additive

(Additive - Semigroup) b => Semigroup (Additive (a -> b)) Source # 
Instance details

Defined in Data.Semigroup.Additive

Methods

(<>) :: Additive (a -> b) -> Additive (a -> b) -> Additive (a -> b) #

sconcat :: NonEmpty (Additive (a -> b)) -> Additive (a -> b) #

stimes :: Integral b0 => b0 -> Additive (a -> b) -> Additive (a -> b) #

Semigroup (Additive Int) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive Int8) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive Int16) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive Int32) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive Int64) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive Integer) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive Natural) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive [a]) Source # 
Instance details

Defined in Data.Semigroup.Additive

Methods

(<>) :: Additive [a] -> Additive [a] -> Additive [a] #

sconcat :: NonEmpty (Additive [a]) -> Additive [a] #

stimes :: Integral b => b -> Additive [a] -> Additive [a] #

(Additive - Semigroup) a => Semigroup (Additive (Maybe a)) Source # 
Instance details

Defined in Data.Semigroup.Additive

Methods

(<>) :: Additive (Maybe a) -> Additive (Maybe a) -> Additive (Maybe a) #

sconcat :: NonEmpty (Additive (Maybe a)) -> Additive (Maybe a) #

stimes :: Integral b => b -> Additive (Maybe a) -> Additive (Maybe a) #

((Additive - Semigroup) a, (Multiplicative - Semigroup) a) => Semigroup (Additive (Ratio a)) Source # 
Instance details

Defined in Data.Semigroup.Additive

Methods

(<>) :: Additive (Ratio a) -> Additive (Ratio a) -> Additive (Ratio a) #

sconcat :: NonEmpty (Additive (Ratio a)) -> Additive (Ratio a) #

stimes :: Integral b => b -> Additive (Ratio a) -> Additive (Ratio a) #

Semigroup (Additive Word) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive Word8) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive Word16) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive Word32) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive Word64) Source # 
Instance details

Defined in Data.Semigroup.Additive

((Additive - Semigroup) a, (Additive - Semigroup) b) => Semigroup (Additive (Either a b)) Source # 
Instance details

Defined in Data.Semigroup.Additive

Methods

(<>) :: Additive (Either a b) -> Additive (Either a b) -> Additive (Either a b) #

sconcat :: NonEmpty (Additive (Either a b)) -> Additive (Either a b) #

stimes :: Integral b0 => b0 -> Additive (Either a b) -> Additive (Either a b) #

Semigroup (Additive ()) Source # 
Instance details

Defined in Data.Semigroup.Additive

Methods

(<>) :: Additive () -> Additive () -> Additive () #

sconcat :: NonEmpty (Additive ()) -> Additive () #

stimes :: Integral b => b -> Additive () -> Additive () #

((Additive - Semigroup) a, (Additive - Semigroup) b) => Semigroup (Additive (a, b)) Source # 
Instance details

Defined in Data.Semigroup.Additive

Methods

(<>) :: Additive (a, b) -> Additive (a, b) -> Additive (a, b) #

sconcat :: NonEmpty (Additive (a, b)) -> Additive (a, b) #

stimes :: Integral b0 => b0 -> Additive (a, b) -> Additive (a, b) #

(Additive - Semigroup) a => Semigroup (Additive (Complex a)) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive Uni) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive Deci) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive Centi) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive Milli) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive Micro) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive Nano) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive Pico) Source # 
Instance details

Defined in Data.Semigroup.Additive

(Additive - Semigroup) a => Semigroup (Additive (Down a)) Source # 
Instance details

Defined in Data.Semigroup.Additive

Methods

(<>) :: Additive (Down a) -> Additive (Down a) -> Additive (Down a) #

sconcat :: NonEmpty (Additive (Down a)) -> Additive (Down a) #

stimes :: Integral b => b -> Additive (Down a) -> Additive (Down a) #

Semigroup (Additive CFloat) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive CDouble) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive (NonEmpty a)) Source # 
Instance details

Defined in Data.Semigroup.Additive

(Additive - Semigroup) a => Semigroup (Additive (IntMap a)) Source # 
Instance details

Defined in Data.Semigroup.Additive

Semigroup (Additive IntSet) Source # 
Instance details

Defined in Data.Semigroup.Additive

(Ord k, (Additive - Semigroup) a) => Semigroup (Additive (Map k a)) Source # 
Instance details

Defined in Data.Semigroup.Additive

Methods

(<>) :: Additive (Map k a) -> Additive (Map k a) -> Additive (Map k a) #

sconcat :: NonEmpty (Additive (Map k a)) -> Additive (Map k a) #

stimes :: Integral b => b -> Additive (Map k a) -> Additive (Map k a) #

Ord a => Semigroup (Additive (Set a)) Source # 
Instance details

Defined in Data.Semigroup.Additive

Methods

(<>) :: Additive (Set a) -> Additive (Set a) -> Additive (Set a) #

sconcat :: NonEmpty (Additive (Set a)) -> Additive (Set a) #

stimes :: Integral b => b -> Additive (Set a) -> Additive (Set a) #

(Additive - Semigroup) a => Semigroup (Additive (VFour a)) Source #

Matrix addition.

>>> m24 1 2 3 4 5 6 7 8 <> m24 1 2 3 4 5 6 7 8 :: M24 Int
V2 (VFour 2 4 6 8) (VFour 10 12 14 16)
Instance details

Defined in Data.Semimodule.Basis

Methods

(<>) :: Additive (VFour a) -> Additive (VFour a) -> Additive (VFour a) #

sconcat :: NonEmpty (Additive (VFour a)) -> Additive (VFour a) #

stimes :: Integral b => b -> Additive (VFour a) -> Additive (VFour a) #

(Additive - Semigroup) a => Semigroup (Additive (V4 a)) Source #

Matrix addition.

>>> m24 1 2 3 4 5 6 7 8 <> m24 1 2 3 4 5 6 7 8 :: M24 Int
V2 (V4 2 4 6 8) (V4 10 12 14 16)
Instance details

Defined in Data.Semimodule.Basis

Methods

(<>) :: Additive (V4 a) -> Additive (V4 a) -> Additive (V4 a) #

sconcat :: NonEmpty (Additive (V4 a)) -> Additive (V4 a) #

stimes :: Integral b => b -> Additive (V4 a) -> Additive (V4 a) #

Semigroup (Additive E3) Source # 
Instance details

Defined in Data.Semimodule.Basis

(Additive - Semigroup) a => Semigroup (Additive (V3 a)) Source #

Matrix addition.

>>> V2 (V3 1 2 3) (V3 4 5 6) <> V2 (V3 7 8 9) (V3 1 2 3)
V2 (V3 8 10 12) (V3 5 7 9)
Instance details

Defined in Data.Semimodule.Basis

Methods

(<>) :: Additive (V3 a) -> Additive (V3 a) -> Additive (V3 a) #

sconcat :: NonEmpty (Additive (V3 a)) -> Additive (V3 a) #

stimes :: Integral b => b -> Additive (V3 a) -> Additive (V3 a) #

Semigroup (Additive E2) Source # 
Instance details

Defined in Data.Semimodule.Basis

(Additive - Semigroup) a => Semigroup (Additive (V2 a)) Source #

Matrix addition.

>>> m23 1 2 3 4 5 6 <> m23 7 8 9 1 2 3 :: M23 Int
V2 (V3 8 10 12) (V3 5 7 9)
Instance details

Defined in Data.Semimodule.Basis

Methods

(<>) :: Additive (V2 a) -> Additive (V2 a) -> Additive (V2 a) #

sconcat :: NonEmpty (Additive (V2 a)) -> Additive (V2 a) #

stimes :: Integral b => b -> Additive (V2 a) -> Additive (V2 a) #

(Additive - Semigroup) a => Semigroup (Additive (Cad a)) Source #

Matrix addition.

Instance details

Defined in Data.Semimodule.Transform

Methods

(<>) :: Additive (Cad a) -> Additive (Cad a) -> Additive (Cad a) #

sconcat :: NonEmpty (Additive (Cad a)) -> Additive (Cad a) #

stimes :: Integral b => b -> Additive (Cad a) -> Additive (Cad a) #

(Additive - Semigroup) a => Semigroup (Additive (Ned a)) Source #

Matrix addition.

Instance details

Defined in Data.Semimodule.Transform

Methods

(<>) :: Additive (Ned a) -> Additive (Ned a) -> Additive (Ned a) #

sconcat :: NonEmpty (Additive (Ned a)) -> Additive (Ned a) #

stimes :: Integral b => b -> Additive (Ned a) -> Additive (Ned a) #

(Additive - Semigroup) a => Semigroup (Additive (Quaternion a)) Source # 
Instance details

Defined in Data.Algebra.Quaternion

(Additive - Semigroup) a => Semigroup (VFour a) Source #

Vector addition.

>>> VFour 1 2 3 4 <> VFour 5 6 7 8
VFour 6 8 10 12 
Instance details

Defined in Data.Semimodule.Basis

Methods

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

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

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

(Additive - Semigroup) a => Semigroup (V4 a) Source #

Vector addition.

>>> V4 1 2 3 4 <> V4 5 6 7 8
V4 6 8 10 12 
Instance details

Defined in Data.Semimodule.Basis

Methods

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

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

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

(Additive - Semigroup) a => Semigroup (V3 a) Source #

Vector addition.

>>> V3 1 2 3 <> V3 4 5 6
V3 5 7 9
Instance details

Defined in Data.Semimodule.Basis

Methods

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

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

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

(Additive - Semigroup) a => Semigroup (V2 a) Source #

Vector addition.

>>> V2 1 2 <> V2 3 4
V2 4 6
Instance details

Defined in Data.Semimodule.Basis

Methods

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

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

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

(Additive - Semigroup) a => Semigroup (Cad a) Source #

Vector addition.

>>> Cad 1 2 3 <> Cad 4 5 6
Cad 5 7 9
Instance details

Defined in Data.Semimodule.Transform

Methods

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

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

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

(Additive - Semigroup) a => Semigroup (Ned a) Source #

Vector addition.

>>> Ned 1 2 3 <> Ned 4 5 6
Ned 5 7 9
Instance details

Defined in Data.Semimodule.Transform

Methods

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

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

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

(Additive - Semigroup) a => Semigroup (Quaternion a) Source # 
Instance details

Defined in Data.Algebra.Quaternion

Semigroup b => Semigroup (a -> b)

Since: base-4.9.0.0

Instance details

Defined in GHC.Base

Methods

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

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

stimes :: Integral b0 => b0 -> (a -> b) -> a -> b #

Semigroup (Either a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Either

Methods

(<>) :: Either a b -> Either a b -> Either a b #

sconcat :: NonEmpty (Either a b) -> Either a b #

stimes :: Integral b0 => b0 -> Either a b -> Either a b #

Semigroup (V1 p)

Since: base-4.12.0.0

Instance details

Defined in GHC.Generics

Methods

(<>) :: V1 p -> V1 p -> V1 p #

sconcat :: NonEmpty (V1 p) -> V1 p #

stimes :: Integral b => b -> V1 p -> V1 p #

Semigroup (U1 p)

Since: base-4.12.0.0

Instance details

Defined in GHC.Generics

Methods

(<>) :: U1 p -> U1 p -> U1 p #

sconcat :: NonEmpty (U1 p) -> U1 p #

stimes :: Integral b => b -> U1 p -> U1 p #

(Semigroup a, Semigroup b) => Semigroup (a, b)

Since: base-4.9.0.0

Instance details

Defined in GHC.Base

Methods

(<>) :: (a, b) -> (a, b) -> (a, b) #

sconcat :: NonEmpty (a, b) -> (a, b) #

stimes :: Integral b0 => b0 -> (a, b) -> (a, b) #

Semigroup (Proxy s)

Since: base-4.9.0.0

Instance details

Defined in Data.Proxy

Methods

(<>) :: Proxy s -> Proxy s -> Proxy s #

sconcat :: NonEmpty (Proxy s) -> Proxy s #

stimes :: Integral b => b -> Proxy s -> Proxy s #

Ord k => Semigroup (Map k v) 
Instance details

Defined in Data.Map.Internal

Methods

(<>) :: Map k v -> Map k v -> Map k v #

sconcat :: NonEmpty (Map k v) -> Map k v #

stimes :: Integral b => b -> Map k v -> Map k v #

(Eq k, Hashable k) => Semigroup (HashMap k v) 
Instance details

Defined in Data.HashMap.Base

Methods

(<>) :: HashMap k v -> HashMap k v -> HashMap k v #

sconcat :: NonEmpty (HashMap k v) -> HashMap k v #

stimes :: Integral b => b -> HashMap k v -> HashMap k v #

Apply f => Semigroup (Act f a) 
Instance details

Defined in Data.Semigroup.Foldable

Methods

(<>) :: Act f a -> Act f a -> Act f a #

sconcat :: NonEmpty (Act f a) -> Act f a #

stimes :: Integral b => b -> Act f a -> Act f a #

Alt f => Semigroup (Alt_ f a) 
Instance details

Defined in Data.Semigroup.Foldable

Methods

(<>) :: Alt_ f a -> Alt_ f a -> Alt_ f a #

sconcat :: NonEmpty (Alt_ f a) -> Alt_ f a #

stimes :: Integral b => b -> Alt_ f a -> Alt_ f a #

Semigroup (f p) => Semigroup (Rec1 f p)

Since: base-4.12.0.0

Instance details

Defined in GHC.Generics

Methods

(<>) :: Rec1 f p -> Rec1 f p -> Rec1 f p #

sconcat :: NonEmpty (Rec1 f p) -> Rec1 f p #

stimes :: Integral b => b -> Rec1 f p -> Rec1 f p #

(Semigroup a, Semigroup b, Semigroup c) => Semigroup (a, b, c)

Since: base-4.9.0.0

Instance details

Defined in GHC.Base

Methods

(<>) :: (a, b, c) -> (a, b, c) -> (a, b, c) #

sconcat :: NonEmpty (a, b, c) -> (a, b, c) #

stimes :: Integral b0 => b0 -> (a, b, c) -> (a, b, c) #

Semigroup a => Semigroup (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

(<>) :: Const a b -> Const a b -> Const a b #

sconcat :: NonEmpty (Const a b) -> Const a b #

stimes :: Integral b0 => b0 -> Const a b -> Const a b #

(Applicative f, Semigroup a) => Semigroup (Ap f a)

Since: base-4.12.0.0

Instance details

Defined in Data.Monoid

Methods

(<>) :: Ap f a -> Ap f a -> Ap f a #

sconcat :: NonEmpty (Ap f a) -> Ap f a #

stimes :: Integral b => b -> Ap f a -> Ap f a #

Alternative f => Semigroup (Alt f a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup.Internal

Methods

(<>) :: Alt f a -> Alt f a -> Alt f a #

sconcat :: NonEmpty (Alt f a) -> Alt f a #

stimes :: Integral b => b -> Alt f a -> Alt f a #

(Profunctor p, Arrow p, Semigroup b) => Semigroup (Closure p a b) 
Instance details

Defined in Data.Profunctor.Closed

Methods

(<>) :: Closure p a b -> Closure p a b -> Closure p a b #

sconcat :: NonEmpty (Closure p a b) -> Closure p a b #

stimes :: Integral b0 => b0 -> Closure p a b -> Closure p a b #

ArrowPlus p => Semigroup (Tambara p a b) 
Instance details

Defined in Data.Profunctor.Strong

Methods

(<>) :: Tambara p a b -> Tambara p a b -> Tambara p a b #

sconcat :: NonEmpty (Tambara p a b) -> Tambara p a b #

stimes :: Integral b0 => b0 -> Tambara p a b -> Tambara p a b #

Semigroup a => Semigroup (Tagged s a) 
Instance details

Defined in Data.Tagged

Methods

(<>) :: Tagged s a -> Tagged s a -> Tagged s a #

sconcat :: NonEmpty (Tagged s a) -> Tagged s a #

stimes :: Integral b => b -> Tagged s a -> Tagged s a #

Semigroup a => Semigroup (Constant a b) 
Instance details

Defined in Data.Functor.Constant

Methods

(<>) :: Constant a b -> Constant a b -> Constant a b #

sconcat :: NonEmpty (Constant a b) -> Constant a b #

stimes :: Integral b0 => b0 -> Constant a b -> Constant a b #

Semigroup c => Semigroup (K1 i c p)

Since: base-4.12.0.0

Instance details

Defined in GHC.Generics

Methods

(<>) :: K1 i c p -> K1 i c p -> K1 i c p #

sconcat :: NonEmpty (K1 i c p) -> K1 i c p #

stimes :: Integral b => b -> K1 i c p -> K1 i c p #

(Semigroup (f p), Semigroup (g p)) => Semigroup ((f :*: g) p)

Since: base-4.12.0.0

Instance details

Defined in GHC.Generics

Methods

(<>) :: (f :*: g) p -> (f :*: g) p -> (f :*: g) p #

sconcat :: NonEmpty ((f :*: g) p) -> (f :*: g) p #

stimes :: Integral b => b -> (f :*: g) p -> (f :*: g) p #

(Semigroup a, Semigroup b, Semigroup c, Semigroup d) => Semigroup (a, b, c, d)

Since: base-4.9.0.0

Instance details

Defined in GHC.Base

Methods

(<>) :: (a, b, c, d) -> (a, b, c, d) -> (a, b, c, d) #

sconcat :: NonEmpty (a, b, c, d) -> (a, b, c, d) #

stimes :: Integral b0 => b0 -> (a, b, c, d) -> (a, b, c, d) #

Semigroup (f p) => Semigroup (M1 i c f p)

Since: base-4.12.0.0

Instance details

Defined in GHC.Generics

Methods

(<>) :: M1 i c f p -> M1 i c f p -> M1 i c f p #

sconcat :: NonEmpty (M1 i c f p) -> M1 i c f p #

stimes :: Integral b => b -> M1 i c f p -> M1 i c f p #

Semigroup (f (g p)) => Semigroup ((f :.: g) p)

Since: base-4.12.0.0

Instance details

Defined in GHC.Generics

Methods

(<>) :: (f :.: g) p -> (f :.: g) p -> (f :.: g) p #

sconcat :: NonEmpty ((f :.: g) p) -> (f :.: g) p #

stimes :: Integral b => b -> (f :.: g) p -> (f :.: g) p #

(Semigroup a, Semigroup b, Semigroup c, Semigroup d, Semigroup e) => Semigroup (a, b, c, d, e)

Since: base-4.9.0.0

Instance details

Defined in GHC.Base

Methods

(<>) :: (a, b, c, d, e) -> (a, b, c, d, e) -> (a, b, c, d, e) #

sconcat :: NonEmpty (a, b, c, d, e) -> (a, b, c, d, e) #

stimes :: Integral b0 => b0 -> (a, b, c, d, e) -> (a, b, c, d, e) #

class Magma a => Quasigroup a where Source #

Minimal complete definition

Nothing

Methods

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

(//) :: Semigroup a => a -> a -> a Source #

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

(\\) :: Semigroup a => a -> a -> a Source #

Instances
Quasigroup (Multiplicative Double) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Quasigroup (Multiplicative Float) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

(Multiplicative - Monoid) a => Quasigroup (Multiplicative (Ratio a)) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Quasigroup (Multiplicative ()) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

((Additive - Group) a, (Multiplicative - Group) a) => Quasigroup (Multiplicative (Complex a)) Source # 
Instance details

Defined in Data.Semigroup.Additive

Quasigroup (Multiplicative Uni) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Quasigroup (Multiplicative Deci) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Quasigroup (Multiplicative Centi) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Quasigroup (Multiplicative Milli) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Quasigroup (Multiplicative Micro) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Quasigroup (Multiplicative Nano) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Quasigroup (Multiplicative Pico) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Quasigroup (Multiplicative CFloat) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Quasigroup (Multiplicative CDouble) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Quasigroup (Additive Double) Source # 
Instance details

Defined in Data.Semigroup.Additive

Quasigroup (Additive Float) Source # 
Instance details

Defined in Data.Semigroup.Additive

Quasigroup (Additive Int) Source # 
Instance details

Defined in Data.Semigroup.Additive

Quasigroup (Additive Int8) Source # 
Instance details

Defined in Data.Semigroup.Additive

Quasigroup (Additive Int16) Source # 
Instance details

Defined in Data.Semigroup.Additive

Quasigroup (Additive Int32) Source # 
Instance details

Defined in Data.Semigroup.Additive

Quasigroup (Additive Int64) Source # 
Instance details

Defined in Data.Semigroup.Additive

Quasigroup (Additive Integer) Source # 
Instance details

Defined in Data.Semigroup.Additive

((Additive - Group) a, (Multiplicative - Monoid) a) => Quasigroup (Additive (Ratio a)) Source # 
Instance details

Defined in Data.Semigroup.Additive

Quasigroup (Additive ()) Source # 
Instance details

Defined in Data.Semigroup.Additive

Methods

(//) :: Additive () -> Additive () -> Additive () Source #

(\\) :: Additive () -> Additive () -> Additive () Source #

(Additive - Group) a => Quasigroup (Additive (Complex a)) Source # 
Instance details

Defined in Data.Semigroup.Additive

Quasigroup (Additive Uni) Source # 
Instance details

Defined in Data.Semigroup.Additive

Quasigroup (Additive Deci) Source # 
Instance details

Defined in Data.Semigroup.Additive

Quasigroup (Additive Centi) Source # 
Instance details

Defined in Data.Semigroup.Additive

Quasigroup (Additive Milli) Source # 
Instance details

Defined in Data.Semigroup.Additive

Quasigroup (Additive Micro) Source # 
Instance details

Defined in Data.Semigroup.Additive

Quasigroup (Additive Nano) Source # 
Instance details

Defined in Data.Semigroup.Additive

Quasigroup (Additive Pico) Source # 
Instance details

Defined in Data.Semigroup.Additive

Quasigroup (Additive CFloat) Source # 
Instance details

Defined in Data.Semigroup.Additive

Quasigroup (Additive CDouble) Source # 
Instance details

Defined in Data.Semigroup.Additive

(Additive - Group) a => Quasigroup (Additive (VFour a)) Source # 
Instance details

Defined in Data.Semimodule.Basis

(Additive - Group) a => Quasigroup (Additive (V4 a)) Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

(//) :: Additive (V4 a) -> Additive (V4 a) -> Additive (V4 a) Source #

(\\) :: Additive (V4 a) -> Additive (V4 a) -> Additive (V4 a) Source #

(Additive - Group) a => Quasigroup (Additive (V3 a)) Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

(//) :: Additive (V3 a) -> Additive (V3 a) -> Additive (V3 a) Source #

(\\) :: Additive (V3 a) -> Additive (V3 a) -> Additive (V3 a) Source #

(Additive - Group) a => Quasigroup (Additive (V2 a)) Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

(//) :: Additive (V2 a) -> Additive (V2 a) -> Additive (V2 a) Source #

(\\) :: Additive (V2 a) -> Additive (V2 a) -> Additive (V2 a) Source #

(Additive - Group) a => Quasigroup (Additive (Cad a)) Source # 
Instance details

Defined in Data.Semimodule.Transform

Methods

(//) :: Additive (Cad a) -> Additive (Cad a) -> Additive (Cad a) Source #

(\\) :: Additive (Cad a) -> Additive (Cad a) -> Additive (Cad a) Source #

(Additive - Group) a => Quasigroup (Additive (Ned a)) Source # 
Instance details

Defined in Data.Semimodule.Transform

Methods

(//) :: Additive (Ned a) -> Additive (Ned a) -> Additive (Ned a) Source #

(\\) :: Additive (Ned a) -> Additive (Ned a) -> Additive (Ned a) Source #

(Additive - Group) a => Quasigroup (Additive (Quaternion a)) Source # 
Instance details

Defined in Data.Algebra.Quaternion

(Additive - Group) a => Quasigroup (VFour a) Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

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

(\\) :: VFour a -> VFour a -> VFour a Source #

(Additive - Group) a => Quasigroup (V4 a) Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

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

(\\) :: V4 a -> V4 a -> V4 a Source #

(Additive - Group) a => Quasigroup (V3 a) Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

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

(\\) :: V3 a -> V3 a -> V3 a Source #

(Additive - Group) a => Quasigroup (V2 a) Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

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

(\\) :: V2 a -> V2 a -> V2 a Source #

(Additive - Group) a => Quasigroup (Cad a) Source # 
Instance details

Defined in Data.Semimodule.Transform

Methods

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

(\\) :: Cad a -> Cad a -> Cad a Source #

(Additive - Group) a => Quasigroup (Ned a) Source # 
Instance details

Defined in Data.Semimodule.Transform

Methods

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

(\\) :: Ned a -> Ned a -> Ned a Source #

(Additive - Group) a => Quasigroup (Quaternion a) Source # 
Instance details

Defined in Data.Algebra.Quaternion

class Quasigroup a => Loop a where Source #

Minimal complete definition

Nothing

Methods

lempty :: a Source #

lempty :: Monoid a => a Source #

lreplicate :: Natural -> a -> a Source #

lreplicate :: Group a => Natural -> a -> a Source #

Instances
(Semigroup a, Quasigroup (Maybe a)) => Loop (Maybe a) Source # 
Instance details

Defined in Data.Group

Loop (Multiplicative Double) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Loop (Multiplicative Float) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

(Multiplicative - Monoid) a => Loop (Multiplicative (Ratio a)) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Loop (Multiplicative ()) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

((Additive - Group) a, (Multiplicative - Group) a) => Loop (Multiplicative (Complex a)) Source # 
Instance details

Defined in Data.Semigroup.Additive

Loop (Multiplicative Uni) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Loop (Multiplicative Deci) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Loop (Multiplicative Centi) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Loop (Multiplicative Milli) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Loop (Multiplicative Micro) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Loop (Multiplicative Nano) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Loop (Multiplicative Pico) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Loop (Multiplicative CFloat) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Loop (Multiplicative CDouble) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Loop (Additive Double) Source # 
Instance details

Defined in Data.Semigroup.Additive

Loop (Additive Float) Source # 
Instance details

Defined in Data.Semigroup.Additive

Loop (Additive Int) Source # 
Instance details

Defined in Data.Semigroup.Additive

Loop (Additive Int8) Source # 
Instance details

Defined in Data.Semigroup.Additive

Loop (Additive Int16) Source # 
Instance details

Defined in Data.Semigroup.Additive

Loop (Additive Int32) Source # 
Instance details

Defined in Data.Semigroup.Additive

Loop (Additive Int64) Source # 
Instance details

Defined in Data.Semigroup.Additive

Loop (Additive Integer) Source # 
Instance details

Defined in Data.Semigroup.Additive

((Additive - Group) a, (Multiplicative - Monoid) a) => Loop (Additive (Ratio a)) Source # 
Instance details

Defined in Data.Semigroup.Additive

Loop (Additive ()) Source # 
Instance details

Defined in Data.Semigroup.Additive

(Additive - Group) a => Loop (Additive (Complex a)) Source # 
Instance details

Defined in Data.Semigroup.Additive

Loop (Additive Uni) Source # 
Instance details

Defined in Data.Semigroup.Additive

Loop (Additive Deci) Source # 
Instance details

Defined in Data.Semigroup.Additive

Loop (Additive Centi) Source # 
Instance details

Defined in Data.Semigroup.Additive

Loop (Additive Milli) Source # 
Instance details

Defined in Data.Semigroup.Additive

Loop (Additive Micro) Source # 
Instance details

Defined in Data.Semigroup.Additive

Loop (Additive Nano) Source # 
Instance details

Defined in Data.Semigroup.Additive

Loop (Additive Pico) Source # 
Instance details

Defined in Data.Semigroup.Additive

Loop (Additive CFloat) Source # 
Instance details

Defined in Data.Semigroup.Additive

Loop (Additive CDouble) Source # 
Instance details

Defined in Data.Semigroup.Additive

(Additive - Group) a => Loop (Additive (VFour a)) Source # 
Instance details

Defined in Data.Semimodule.Basis

(Additive - Group) a => Loop (Additive (V4 a)) Source # 
Instance details

Defined in Data.Semimodule.Basis

(Additive - Group) a => Loop (Additive (V3 a)) Source # 
Instance details

Defined in Data.Semimodule.Basis

(Additive - Group) a => Loop (Additive (V2 a)) Source # 
Instance details

Defined in Data.Semimodule.Basis

(Additive - Group) a => Loop (Additive (Cad a)) Source # 
Instance details

Defined in Data.Semimodule.Transform

(Additive - Group) a => Loop (Additive (Ned a)) Source # 
Instance details

Defined in Data.Semimodule.Transform

(Additive - Group) a => Loop (Additive (Quaternion a)) Source # 
Instance details

Defined in Data.Algebra.Quaternion

(Additive - Group) a => Loop (VFour a) Source # 
Instance details

Defined in Data.Semimodule.Basis

(Additive - Group) a => Loop (V4 a) Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

lempty :: V4 a Source #

lreplicate :: Natural -> V4 a -> V4 a Source #

(Additive - Group) a => Loop (V3 a) Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

lempty :: V3 a Source #

lreplicate :: Natural -> V3 a -> V3 a Source #

(Additive - Group) a => Loop (V2 a) Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

lempty :: V2 a Source #

lreplicate :: Natural -> V2 a -> V2 a Source #

(Additive - Group) a => Loop (Cad a) Source # 
Instance details

Defined in Data.Semimodule.Transform

Methods

lempty :: Cad a Source #

lreplicate :: Natural -> Cad a -> Cad a Source #

(Additive - Group) a => Loop (Ned a) Source # 
Instance details

Defined in Data.Semimodule.Transform

Methods

lempty :: Ned a Source #

lreplicate :: Natural -> Ned a -> Ned a Source #

(Additive - Group) a => Loop (Quaternion a) Source # 
Instance details

Defined in Data.Algebra.Quaternion

class (Loop a, Monoid a) => Group a where Source #

Minimal complete definition

Nothing

Methods

inv :: a -> a Source #

greplicate :: Integer -> a -> a Source #

Instances
(Semigroup a, Quasigroup (Maybe a)) => Group (Maybe a) Source # 
Instance details

Defined in Data.Group

Methods

inv :: Maybe a -> Maybe a Source #

greplicate :: Integer -> Maybe a -> Maybe a Source #

Group (Multiplicative Double) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Group (Multiplicative Float) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

(Multiplicative - Monoid) a => Group (Multiplicative (Ratio a)) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Group (Multiplicative ()) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

((Additive - Group) a, (Multiplicative - Group) a) => Group (Multiplicative (Complex a)) Source # 
Instance details

Defined in Data.Semigroup.Additive

Group (Multiplicative Uni) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Group (Multiplicative Deci) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Group (Multiplicative Centi) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Group (Multiplicative Milli) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Group (Multiplicative Micro) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Group (Multiplicative Nano) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Group (Multiplicative Pico) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Group (Multiplicative CFloat) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Group (Multiplicative CDouble) Source # 
Instance details

Defined in Data.Semigroup.Multiplicative

Group (Additive Double) Source # 
Instance details

Defined in Data.Semigroup.Additive

Group (Additive Float) Source # 
Instance details

Defined in Data.Semigroup.Additive

Group (Additive Int) Source # 
Instance details

Defined in Data.Semigroup.Additive

Group (Additive Int8) Source # 
Instance details

Defined in Data.Semigroup.Additive

Group (Additive Int16) Source # 
Instance details

Defined in Data.Semigroup.Additive

Group (Additive Int32) Source # 
Instance details

Defined in Data.Semigroup.Additive

Group (Additive Int64) Source # 
Instance details

Defined in Data.Semigroup.Additive

Group (Additive Integer) Source # 
Instance details

Defined in Data.Semigroup.Additive

((Additive - Group) a, (Multiplicative - Monoid) a) => Group (Additive (Ratio a)) Source # 
Instance details

Defined in Data.Semigroup.Additive

Group (Additive ()) Source # 
Instance details

Defined in Data.Semigroup.Additive

(Additive - Group) a => Group (Additive (Complex a)) Source # 
Instance details

Defined in Data.Semigroup.Additive

Group (Additive Uni) Source # 
Instance details

Defined in Data.Semigroup.Additive

Group (Additive Deci) Source # 
Instance details

Defined in Data.Semigroup.Additive

Group (Additive Centi) Source # 
Instance details

Defined in Data.Semigroup.Additive

Group (Additive Milli) Source # 
Instance details

Defined in Data.Semigroup.Additive

Group (Additive Micro) Source # 
Instance details

Defined in Data.Semigroup.Additive

Group (Additive Nano) Source # 
Instance details

Defined in Data.Semigroup.Additive

Group (Additive Pico) Source # 
Instance details

Defined in Data.Semigroup.Additive

Group (Additive CFloat) Source # 
Instance details

Defined in Data.Semigroup.Additive

Group (Additive CDouble) Source # 
Instance details

Defined in Data.Semigroup.Additive

(Additive - Group) a => Group (Additive (VFour a)) Source # 
Instance details

Defined in Data.Semimodule.Basis

(Additive - Group) a => Group (Additive (V4 a)) Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

inv :: Additive (V4 a) -> Additive (V4 a) Source #

greplicate :: Integer -> Additive (V4 a) -> Additive (V4 a) Source #

(Additive - Group) a => Group (Additive (V3 a)) Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

inv :: Additive (V3 a) -> Additive (V3 a) Source #

greplicate :: Integer -> Additive (V3 a) -> Additive (V3 a) Source #

(Additive - Group) a => Group (Additive (V2 a)) Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

inv :: Additive (V2 a) -> Additive (V2 a) Source #

greplicate :: Integer -> Additive (V2 a) -> Additive (V2 a) Source #

(Additive - Group) a => Group (Additive (Cad a)) Source # 
Instance details

Defined in Data.Semimodule.Transform

(Additive - Group) a => Group (Additive (Ned a)) Source # 
Instance details

Defined in Data.Semimodule.Transform

(Additive - Group) a => Group (Additive (Quaternion a)) Source # 
Instance details

Defined in Data.Algebra.Quaternion

(Additive - Group) a => Group (VFour a) Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

inv :: VFour a -> VFour a Source #

greplicate :: Integer -> VFour a -> VFour a Source #

(Additive - Group) a => Group (V4 a) Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

inv :: V4 a -> V4 a Source #

greplicate :: Integer -> V4 a -> V4 a Source #

(Additive - Group) a => Group (V3 a) Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

inv :: V3 a -> V3 a Source #

greplicate :: Integer -> V3 a -> V3 a Source #

(Additive - Group) a => Group (V2 a) Source # 
Instance details

Defined in Data.Semimodule.Basis

Methods

inv :: V2 a -> V2 a Source #

greplicate :: Integer -> V2 a -> V2 a Source #

(Additive - Group) a => Group (Cad a) Source # 
Instance details

Defined in Data.Semimodule.Transform

Methods

inv :: Cad a -> Cad a Source #

greplicate :: Integer -> Cad a -> Cad a Source #

(Additive - Group) a => Group (Ned a) Source # 
Instance details

Defined in Data.Semimodule.Transform

Methods

inv :: Ned a -> Ned a Source #

greplicate :: Integer -> Ned a -> Ned a Source #

(Additive - Group) a => Group (Quaternion a) Source # 
Instance details

Defined in Data.Algebra.Quaternion