module Numeric.Semiring.Integral ( IntegralSemiring ) where import Numeric.Algebra.Class import Numeric.Natural.Internal -- | An integral semiring has no zero divisors -- -- > a * b = 0 implies a == 0 || b == 0 class (Monoidal r, Semiring r) => IntegralSemiring r instance IntegralSemiring Integer instance IntegralSemiring Natural instance IntegralSemiring Bool