diff --git a/cndict.cabal b/cndict.cabal
--- a/cndict.cabal
+++ b/cndict.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                cndict
-version:             0.4.4
+version:             0.4.5
 synopsis:            Chinese/Mandarin <-> English dictionary, Chinese lexer.
 -- description:
 license:             PublicDomain
diff --git a/src/Data/Chinese/CCDict.hs b/src/Data/Chinese/CCDict.hs
--- a/src/Data/Chinese/CCDict.hs
+++ b/src/Data/Chinese/CCDict.hs
@@ -238,9 +238,9 @@
         maxBy' hiScore hiItem (y:ys) =
           let score = fn y in
           if score > hiScore then maxBy' score y ys else maxBy' hiScore hiItem ys
-    geoMean :: [Int] -> Double
+    geoMean :: [Int] -> Integer
     geoMean [] = 0
-    geoMean n = fromIntegral (product n)**(recip (fromIntegral (length n)))
+    geoMean n = product $ map fromIntegral n
     -- assocs = [ (node, geoMean (filter (/=0) (nodeSum node)))
     --          | node <- forest ]
     wordCount word = maybe 1 subtlexWCount (M.lookup word subtlex)
