-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Algebraic structures -- -- Attempt to define algebraic structures in more robust and useful way. @package morphisms-objects @version 0.1.0 module Control.Object.Semigroup -- |
-- When providing a new instance, you should ensure it satisfies the one law: -- * Associativity: x <> (y <> z) = (x <> y) <> z --class Semigroup a -- | Infix version of binop (<>) :: Semigroup a => a -> a -> a -- | Prefix version of <> binop :: Semigroup a => a -> a -> a module Control.Object.Monoid -- |
-- When providing a new instance, you should ensure it satisfies the two law: -- * Right absorption: unit <> x = x -- * Left absorption: x <> unit = x --class Semigroup a => Monoid a unit :: Monoid a => a module Control.Object.Group -- |
-- When providing a new instance, you should ensure it satisfies the two law: -- * Right absorption: x <> inverse x = unit -- * Left absorption: inverse x <> x = unit --class Monoid a => Group a inverse :: Group a => a -> a module Control.Object