diff --git a/rings.cabal b/rings.cabal
--- a/rings.cabal
+++ b/rings.cabal
@@ -1,5 +1,5 @@
 name:                rings
-version:             0.0.2.2
+version:             0.0.2.3
 synopsis:            Groups, rings, semirings, and dioids.
 description:         Lawful algebraic classes and a la carte instances.
 homepage:            https://github.com/cmk/rings
@@ -27,6 +27,7 @@
     , Data.Semiring.Matrix
     , Data.Semiring.Module
     , Data.Semiring.Property
+
     , Data.Bool.Instance
     , Data.Complex.Instance
     , Data.Double.Instance
diff --git a/src/Data/Dioid.hs b/src/Data/Dioid.hs
--- a/src/Data/Dioid.hs
+++ b/src/Data/Dioid.hs
@@ -49,15 +49,9 @@
 
   -- | A dioid homomorphism from the naturals to /r/.
   fromNatural :: Natural -> r
-{-
-  psignum :: Monoid r => r -> Maybe r
-  psignum x = case pcomparePrd mempty x
-     Just GT -> Just sunit
-     Just EQ -> Just mempty
-     _ -> Nothing
--}
 
-
-instance (Monoid a, Monoid b, Dioid a, Dioid b) => Dioid (a, b)
+instance (Monoid a, Monoid b, Dioid a, Dioid b) => Dioid (a, b) where
+  fromNatural x = (fromNatural x, fromNatural x)
 
 instance (Monoid a, Monoid b, Monoid c, Dioid a, Dioid b, Dioid c) => Dioid (a, b, c)
+  fromNatural x = (fromNatural x, fromNatural x, fromNatural x)
diff --git a/src/Data/Fixed/Instance.hs b/src/Data/Fixed/Instance.hs
--- a/src/Data/Fixed/Instance.hs
+++ b/src/Data/Fixed/Instance.hs
@@ -37,7 +37,8 @@
 
 #define deriveRing(ty)             \
 instance Ring (ty) where {         \
-   abs = N.abs                     \
+   fromInteger = N.fromInteger     \
+;  abs = N.abs                     \
 ;  signum = N.signum               \
 ;  {-# INLINE abs #-}              \
 ;  {-# INLINE signum #-}           \
