-----------------------------------------------------------------------------
-- |
-- Module      :  Data.Ring.Semi
-- Copyright   :  (c) Edward Kmett 2009
-- License     :  BSD-style
-- Maintainer  :  ekmett@gmail.com
-- Stability   :  experimental
-- Portability :  non-portable (MPTCs)
--
--
-----------------------------------------------------------------------------

module Data.Ring.Semi
    ( module Data.Ring.Semi.Near
    , SemiRing
    ) where

import Data.Ring.Semi.Near

-- | A 'SemiRing' is an instance of both 'Multiplicative' and 'Monoid' where 
--   'times' distributes over 'plus'.
class (RightSemiNearRing a, LeftSemiNearRing a) => SemiRing a