-- | Properties for 'Monoid' type class module Test.QuickCheck.Property.Monoid ( module Test.QuickCheck.Property.Common , prop_MonoidLeft , prop_MonoidRight , prop_MonoidIdentity , prop_Mappend , prop_Monoid ) where import Data.Monoid import Test.QuickCheck.Property.Common import Test.QuickCheck.Property.Common.Internal import Test.QuickCheck.Property.Generic -- | 'mempty' is left identity prop_MonoidLeft :: Monoid a => T a -> a -> Equal a prop_MonoidLeft = prop_LeftIdentity mempty mappend -- | 'mempty' is right identity prop_MonoidRight :: Monoid a => T a -> a -> Equal a prop_MonoidRight = prop_RightIdentity mempty mappend -- | 'mempty' is identity prop_MonoidIdentity :: Monoid a => T a -> a -> Equal a prop_MonoidIdentity = prop_Identity mempty mappend -- | 'mappend' is associative prop_Mappend :: Monoid a => T a -> a -> a -> a -> Equal a prop_Mappend = prop_Associative mappend -- | All properties of monoid prop_Monoid :: Monoid a => T a -> a -> a -> a -> Equal a prop_Monoid = prop_GenMonoid mempty mappend