{-# language TypeSynonymInstances, FlexibleInstances, UndecidableInstances #-} module Satchmo.SMT.Exotic.Semiring.Class where data Strictness = Full | Half deriving ( Eq, Ord, Show ) class Semiring a where strictness :: a -> Strictness nonnegative :: a -> Bool strictly_positive :: a -> Bool ge :: a -> a -> Bool gt :: a -> a -> Bool plus :: a -> a -> a zero :: a times :: a -> a -> a one :: a