diff --git a/System/Clock.hsc b/System/Clock.hsc
--- a/System/Clock.hsc
+++ b/System/Clock.hsc
@@ -170,43 +170,26 @@
 #endif
 
 normalize :: TimeSpec -> TimeSpec
-normalize (TimeSpec xs xn)
-  | xn < 0 || xn >= 10^9 =
-    let (q, r) = xn `divMod` (10^9)
-    in TimeSpec (xs + q) r
-  | otherwise            = TimeSpec xs xn
+normalize (TimeSpec xs xn) | xn < 0 || xn >= 10^9 = TimeSpec (xs + q)  r
+                           | otherwise            = TimeSpec  xs      xn
+                             where (q, r) = xn `divMod` (10^9)
 
 instance Num TimeSpec where
-  (TimeSpec xs xn) + (TimeSpec ys yn) =
-      normalize $ TimeSpec (xs + ys) (xn + yn)
-  (TimeSpec xs xn) - (TimeSpec ys yn) =
-      normalize $ TimeSpec (xs - ys) (xn - yn)
-  (normalize -> TimeSpec xs xn) * (normalize -> TimeSpec ys yn) =
-      let
-        -- convert to arbitraty Integer type to avoid int overflow
-        xsi = toInteger xs
-        xni = toInteger xn
-        ysi = toInteger ys
-        yni = toInteger yn
-      in
-        normalize $ TimeSpec
-          -- seconds
-          (fromInteger $ xsi * ysi)
-          -- nanoseconds
-          (fromInteger $ (xni * yni + (xni * ysi + xsi * yni) * (10^9))
-            `div` (10^9))
+  (TimeSpec xs xn) + (TimeSpec ys yn) = normalize $ TimeSpec (xs + ys) (xn + yn)
+  (TimeSpec xs xn) - (TimeSpec ys yn) = normalize $ TimeSpec (xs - ys) (xn - yn)
+  (TimeSpec xs xn) * (TimeSpec ys yn) =
+      let xsi = toInteger xs -- convert to arbitraty Integer type to avoid int overflow
+          xni = toInteger xn
+          ysi = toInteger ys
+          yni = toInteger yn   -- seconds                -- nanoseconds
+      in normalize $! TimeSpec (fromInteger $! xsi * ysi) (fromInteger $! (xni * yni + (xni * ysi + xsi * yni) * (10^9)) `div` (10^9))
   negate (TimeSpec xs xn) =
       normalize $ TimeSpec (negate xs) (negate xn)
-  abs (normalize -> TimeSpec xs xn)
-    | xs == 0   = normalize $ TimeSpec 0 xn
-    | otherwise = normalize $ TimeSpec (abs xs) (signum xs * xn)
-  signum (normalize -> TimeSpec xs xn)
-      | xs == 0   = TimeSpec (signum xn) 0
-      | otherwise = TimeSpec (signum xs) 0
-  fromInteger x =
-      -- For range, compute div, mod over integers, not any bounded type.
-      let (q, r) = x `divMod` (10^9)
-      in TimeSpec (fromInteger q) (fromInteger r)
+  abs    (normalize -> TimeSpec xs xn) | xs == 0   = normalize $! TimeSpec 0 xn
+                                       | otherwise = normalize $! TimeSpec (abs xs) (signum xs * xn)
+  signum (normalize -> TimeSpec xs xn) | xs == 0   = TimeSpec (signum xn) 0
+                                       | otherwise = TimeSpec (signum xs) 0
+--fromInteger x = TimeSpec (fromInteger q) (fromInteger r) where (q, r) = x `divMod` (10^9)
 
 instance Eq TimeSpec where
   (normalize -> TimeSpec xs xn) == (normalize -> TimeSpec ys yn)
diff --git a/clock.cabal b/clock.cabal
--- a/clock.cabal
+++ b/clock.cabal
@@ -1,5 +1,5 @@
 name:          clock
-version:       0.5.1
+version:       0.5.2
 stability:     stable
 synopsis:      High-resolution clock functions: monotonic, realtime, cputime.
 description:   A package for convenient access to high-resolution clock and
@@ -25,12 +25,14 @@
                .
                Unit tests and instance fixes by Christian Burger on 2015-06-25.
                .
+               Removed fromInteger definition for TimeSpec, Cetin Sert on 2015-12-15.
+               .
                [Version Scheme]
                Major-@/R/@-ewrite . New-@/F/@-unctionality . @/I/@-mprovementAndBugFixes . @/P/@-ackagingOnly
                .
                * @PackagingOnly@ changes are made for quality assurance reasons.
 
-copyright:     Copyright © Cetin Sert 2009-2013, Eugene Kirpichov 2010, Finn Espen Gundersen 2013, Gerolf Seitz 2013, Mathieu Boespflug 2014 2015, Chris Done 2015, Dimitri Sabadie 2015, Christian Burger 2015
+copyright:     Copyright © Cetin Sert 2009-2016, Eugene Kirpichov 2010, Finn Espen Gundersen 2013, Gerolf Seitz 2013, Mathieu Boespflug 2014 2015, Chris Done 2015, Dimitri Sabadie 2015, Christian Burger 2015
 license:       BSD3
 license-file:  LICENSE
 author:        Cetin Sert <cetin@corsis.eu>, Corsis Research
@@ -67,7 +69,7 @@
     if os(windows)
       c-sources:         cbits/hs_clock_win32.c
     include-dirs:        cbits
-    ghc-options:         -O2 -Wall
+    ghc-options:         -O3 -Wall
 
     if flag(llvm)
       ghc-options:       -fllvm -optlo-O3
