diff --git a/Main.hs b/Main.hs
--- a/Main.hs
+++ b/Main.hs
@@ -8,8 +8,8 @@
 import Math.SMT.Yices.Parser
 import Math.SMT.Yices.Syntax
 import Math.SMT.Yices.Pipe
-import List
-import Monad
+import Data.List
+import Control.Monad
 -- import Random
 
 yicesPath = "/home/kyagrd/yices/bin/yices" -- your yices path
diff --git a/Math/SMT/Yices/Parser.hs b/Math/SMT/Yices/Parser.hs
--- a/Math/SMT/Yices/Parser.hs
+++ b/Math/SMT/Yices/Parser.hs
@@ -19,9 +19,9 @@
  ) where
 
 import Math.SMT.Yices.Syntax
-import Monad
-import Maybe
-import Ratio
+import Control.Monad
+import Data.Maybe
+import Data.Ratio
 import Text.ParserCombinators.Parsec
 import Text.ParserCombinators.Parsec.Language
 import qualified Text.ParserCombinators.Parsec.Token as T
diff --git a/Math/SMT/Yices/Pipe.hs b/Math/SMT/Yices/Pipe.hs
--- a/Math/SMT/Yices/Pipe.hs
+++ b/Math/SMT/Yices/Pipe.hs
@@ -19,8 +19,8 @@
 
 import Math.SMT.Yices.Syntax
 import Math.SMT.Yices.Parser
-import List
-import Monad
+import Data.List
+import Control.Monad
 import System.IO
 import System.Process
 
diff --git a/Math/SMT/Yices/Syntax.hs b/Math/SMT/Yices/Syntax.hs
--- a/Math/SMT/Yices/Syntax.hs
+++ b/Math/SMT/Yices/Syntax.hs
@@ -14,10 +14,10 @@
  -}
 module Math.SMT.Yices.Syntax ( TypY(..) , ExpY(..) , CmdY(..) ) where
 
-import Char
+import Data.Char
 import Data.Monoid
-import List
-import Ratio
+import Data.List
+import Data.Ratio
 import Text.Show
 
 -- | yices types
@@ -102,7 +102,7 @@
 space = showChar ' '
 
 showListSepByWith :: (a -> ShowS) -> String -> [a] -> ShowS
-showListSepByWith showsFun sep = foldr (.) id . intersperse (showString sep) . map showsFun
+showListSepByWith showsFun sep = foldr1 (.) . intersperse (showString sep) . map showsFun
 
 showListSepBy :: (Show a) => String -> [a] -> ShowS
 showListSepBy = showListSepByWith (showsPrec 0)
diff --git a/yices.cabal b/yices.cabal
--- a/yices.cabal
+++ b/yices.cabal
@@ -1,5 +1,5 @@
 name:                yices
-version:             0.0.0.8
+version:             0.0.0.9
 synopsis:            Haskell programming interface to Yices SMT solver
 description:         Incomplete (no bitvectors) syntax, parser, and inter
                      process communication to Yices from Haskell through pipe.
@@ -15,10 +15,10 @@
 author:              Ki Yung Ahn <kya@pdx.edu>
 maintainer:          Ki Yung Ahn <kya@pdx.edu>
 build-type:          Simple
-cabal-version:       >=1.2
 extra-source-files:  Main.hs
 data-files:          README, ChangeLog
-build-depends:       base >= 4 && < 5, haskell98, process, parsec
+build-depends:       base >= 4 && < 5, process, parsec,
+                     template-haskell, th-lift
 exposed-modules:     Math.SMT.Yices.Syntax,
                      Math.SMT.Yices.Parser,
                      Math.SMT.Yices.Pipe
