:: Natural -> Nat package:semirings

Generically generate a Semiring fromNatural for any product-like type implementing Generic. It is only defined for product types.