seems `fromNonNegInt` only needs `sumN(one, n)`. `one` is from MultiplicativeMonoid and `sumN` is from `AdditiveMonoid` so `Rig` `fromPosInt` would only need `Semiring`. We don't have `Pos` or `NonNeg` types. We could add them or add unsafe functions.
seems
fromNonNegIntonly needssumN(one, n).oneis from MultiplicativeMonoid andsumNis fromAdditiveMonoidsoRigfromPosIntwould only needSemiring.We don't have
PosorNonNegtypes. We could add them or add unsafe functions.