module Data.Ring where import Data.Group import Data.Semiring import Prelude hiding (Num(..)) class (Group a, Semiring a) => Ring a where {-# MINIMAL abs, signum #-} abs :: a -> a signum :: a -> a -- satisfies trichotomy law