added instance for IntegralSemiring