{-# 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