monoid-extras-0.1.0.0: src/Data/Monoid/WithSemigroup.hs
{-# LANGUAGE FlexibleInstances
, UndecidableInstances
#-}
-----------------------------------------------------------------------------
-- |
-- Module : Data.Monoid.WithSemigroup
-- Copyright : (c) 2011 diagrams-core team (see LICENSE)
-- License : BSD-style (see LICENSE)
-- Maintainer : diagrams-discuss@googlegroups.com
--
-- Convenience alias for the combination of @Monoid@ and @Semigroup@ constraints.
--
-----------------------------------------------------------------------------
module Data.Monoid.WithSemigroup
( Monoid'
) where
import Data.Semigroup
-- Poor man's constraint synonym. Eventually, once it becomes
-- standard, we can make this a real constraint synonym and get rid of
-- the UndecidableInstances flag. Better yet, hopefully the Monoid
-- class will eventually have a Semigroup superclass.
-- | The @Monoid'@ class is a synonym for things which are instances
-- of both 'Semigroup' and 'Monoid'. Ideally, the 'Monoid' class
-- itself will eventually include a 'Semigroup' superclass and we
-- can get rid of this.
class (Semigroup m, Monoid m) => Monoid' m
instance (Semigroup m, Monoid m) => Monoid' m