module Pandora.Pattern.Object.Quasiring (Quasiring (..)) where

import Pandora.Pattern.Object.Monoid (Monoid)
import Pandora.Pattern.Object.Ringoid (Ringoid)

{- |
> When providing a new instance, you should ensure it satisfies the one law:
> * Additive identity is a multiplicative annihilator: zero * x = x  * zero = zero
-}

class (Monoid a, Ringoid a) => Quasiring a where
        one :: a