module Numeric.Order.Additive ( AdditiveOrder ) where import Numeric.Natural import Numeric.Additive.Class import Numeric.Order.Class -- An additive semigroup with a partial order (<=) -- | z + x <= z + y = x <= y = x + z <= y + z class (Additive r, Order r) => AdditiveOrder r instance AdditiveOrder Integer instance AdditiveOrder Natural instance AdditiveOrder Bool instance AdditiveOrder () instance (AdditiveOrder a, AdditiveOrder b) => AdditiveOrder (a,b) instance (AdditiveOrder a, AdditiveOrder b, AdditiveOrder c) => AdditiveOrder (a,b,c) instance (AdditiveOrder a, AdditiveOrder b, AdditiveOrder c, AdditiveOrder d) => AdditiveOrder (a,b,c,d) instance (AdditiveOrder a, AdditiveOrder b, AdditiveOrder c, AdditiveOrder d, AdditiveOrder e) => AdditiveOrder (a,b,c,d,e)