diff --git a/aop-prelude.cabal b/aop-prelude.cabal
--- a/aop-prelude.cabal
+++ b/aop-prelude.cabal
@@ -4,7 +4,7 @@
 -- http://haskell.org/cabal/users-guide/
 
 name:                aop-prelude
-version:             0.3.0.1
+version:             0.3.0.2
 synopsis:            prelude for Algebra of Programming
 description:         prelude for Algenra of Programming, the original code was created by Richard Bird.
 homepage:            https://github.com/cutsea110/aop-prelude.git
diff --git a/src/AOPPrelude.hs b/src/AOPPrelude.hs
--- a/src/AOPPrelude.hs
+++ b/src/AOPPrelude.hs
@@ -162,11 +162,11 @@
 wok r       = r . swap
 
 -- Numerical functions: ---------------------------------------------
-zero   :: a -> Natural
+zero   :: Num a => t -> a
 zero   = const 0
-succ   :: Natural -> Natural
+succ   :: Num a => a -> a
 succ   = (+1)
-pred   :: Natural -> Natural
+pred   :: Num a => a -> a
 pred n = n - 1
 
 plus   :: Num a => (a, a) -> a
@@ -252,7 +252,7 @@
                         | r (b, a)  = b:x
                         | otherwise = a:b:x
 
-length :: [a] -> Natural
+length :: Num a => [t] -> a
 length   = catalist (0, succ . outr)
 sum :: Num a => [a] -> a
 sum      = catalist (0, plus)
