diff --git a/Lava/Captain.hs b/Lava/Captain.hs
--- a/Lava/Captain.hs
+++ b/Lava/Captain.hs
@@ -12,12 +12,12 @@
 import Lava.LavaDir
 import Lava.Verification
 
-import List
+import Data.List
   ( intersperse
   , nub
   )
 
-import IO
+import System.IO
   ( openFile
   , IOMode(..)
   , hPutStr
diff --git a/Lava/ConstructiveAnalysis.hs b/Lava/ConstructiveAnalysis.hs
--- a/Lava/ConstructiveAnalysis.hs
+++ b/Lava/ConstructiveAnalysis.hs
@@ -17,7 +17,7 @@
   , unsafeInterleaveST
   )
 
-import List
+import Data.List
   ( isPrefixOf
   )
 
diff --git a/Lava/Eprover.hs b/Lava/Eprover.hs
--- a/Lava/Eprover.hs
+++ b/Lava/Eprover.hs
@@ -12,17 +12,20 @@
 import Lava.LavaDir
 import Lava.Verification
 
-import List
+import Data.List
   ( intersperse
   , nub
   )
 
-import IO
+import System.IO
   ( openFile
   , IOMode(..)
   , hPutStrLn
   , hClose
-  , try
+  )
+
+import System.IO.Error
+  ( try
   )
 
 import Lava.IOBuffering
diff --git a/Lava/Fixit.hs b/Lava/Fixit.hs
--- a/Lava/Fixit.hs
+++ b/Lava/Fixit.hs
@@ -12,12 +12,12 @@
 import Lava.LavaDir
 import Lava.Verification
 
-import List
+import Data.List
   ( intersperse
   , nub
   )
 
-import IO
+import System.IO
   ( openFile
   , IOMode(..)
   , hPutStr
diff --git a/Lava/Generic.hs b/Lava/Generic.hs
--- a/Lava/Generic.hs
+++ b/Lava/Generic.hs
@@ -10,7 +10,7 @@
   , next
   )
 
-import List
+import Data.List
   ( transpose
   )
 
diff --git a/Lava/HeerHugo.hs b/Lava/HeerHugo.hs
--- a/Lava/HeerHugo.hs
+++ b/Lava/HeerHugo.hs
@@ -12,12 +12,12 @@
 import Lava.LavaDir
 import Lava.Verification
 
-import List
+import Data.List
   ( intersperse
   , nub
   )
 
-import IO
+import System.IO
   ( openFile
   , IOMode(..)
   , hPutStr
diff --git a/Lava/IOBuffering.hs b/Lava/IOBuffering.hs
--- a/Lava/IOBuffering.hs
+++ b/Lava/IOBuffering.hs
@@ -1,6 +1,6 @@
 module Lava.IOBuffering where
 
-import IO
+import System.IO
   ( hSetBuffering
   , stdout
   , BufferMode(..)
diff --git a/Lava/Isc.hs b/Lava/Isc.hs
--- a/Lava/Isc.hs
+++ b/Lava/Isc.hs
@@ -15,9 +15,9 @@
 import Lava.Verification
 import Lava.IOBuffering
 
-import Array
+import Data.Array
 import Lava.MyST
-import List(intersperse)
+import Data.List(intersperse)
 import System.Cmd (system)
 import System.Exit (ExitCode(..))
 
diff --git a/Lava/LavaRandom.hs b/Lava/LavaRandom.hs
--- a/Lava/LavaRandom.hs
+++ b/Lava/LavaRandom.hs
@@ -6,7 +6,7 @@
   )
  where
 
-import Random
+import System.Random
   ( StdGen
   , newStdGen
   , next
diff --git a/Lava/Limmat.hs b/Lava/Limmat.hs
--- a/Lava/Limmat.hs
+++ b/Lava/Limmat.hs
@@ -12,12 +12,12 @@
 import Lava.LavaDir
 import Lava.Verification
 
-import List
+import Data.List
   ( intersperse
   , nub
   )
 
-import IO
+import System.IO
   ( openFile
   , IOMode(..)
   , hPutStr
diff --git a/Lava/Modoc.hs b/Lava/Modoc.hs
--- a/Lava/Modoc.hs
+++ b/Lava/Modoc.hs
@@ -12,12 +12,12 @@
 import Lava.LavaDir
 import Lava.Verification
 
-import List
+import Data.List
   ( intersperse
   , nub
   )
 
-import IO
+import System.IO
   ( openFile
   , IOMode(..)
   , hPutStr
diff --git a/Lava/Property.hs b/Lava/Property.hs
--- a/Lava/Property.hs
+++ b/Lava/Property.hs
@@ -22,14 +22,14 @@
 import Lava.Signal
 import Lava.Generic
 
-import Monad
+import Control.Monad
   ( liftM2
   , liftM3
   , liftM4
   , liftM5
   )
 
-import List
+import Data.List
   ( intersperse
   , transpose
   )
diff --git a/Lava/Retime.hs b/Lava/Retime.hs
--- a/Lava/Retime.hs
+++ b/Lava/Retime.hs
@@ -8,7 +8,7 @@
 import Lava.Sequent
 import Lava.Netlist
 
-import List
+import Data.List
   ( isPrefixOf
   )
 
diff --git a/Lava/Satnik.hs b/Lava/Satnik.hs
--- a/Lava/Satnik.hs
+++ b/Lava/Satnik.hs
@@ -12,12 +12,12 @@
 import Lava.LavaDir
 import Lava.Verification
 
-import List
+import Data.List
   ( intersperse
   , nub
   )
 
-import IO
+import System.IO
   ( openFile
   , IOMode(..)
   , hPutStr
diff --git a/Lava/Satzoo.hs b/Lava/Satzoo.hs
--- a/Lava/Satzoo.hs
+++ b/Lava/Satzoo.hs
@@ -12,12 +12,12 @@
 import Lava.LavaDir
 import Lava.Verification
 
-import List
+import Data.List
   ( intersperse
   , nub
   )
 
-import IO
+import System.IO
   ( openFile
   , IOMode(..)
   , hPutStr
diff --git a/Lava/Signal.hs b/Lava/Signal.hs
--- a/Lava/Signal.hs
+++ b/Lava/Signal.hs
@@ -4,7 +4,7 @@
 import Lava.Sequent
 import Lava.Error
 
-import List
+import Data.List
   ( transpose
   )
 
diff --git a/Lava/Smv.hs b/Lava/Smv.hs
--- a/Lava/Smv.hs
+++ b/Lava/Smv.hs
@@ -12,12 +12,12 @@
 import Lava.LavaDir
 import Lava.Verification
 
-import List
+import Data.List
   ( intersperse
   , nub
   )
 
-import IO
+import System.IO
   ( openFile
   , IOMode(..)
   , hPutStr
diff --git a/Lava/Stable.hs b/Lava/Stable.hs
--- a/Lava/Stable.hs
+++ b/Lava/Stable.hs
@@ -15,7 +15,7 @@
   , unsafeInterleaveST
   )
 
-import List
+import Data.List
   ( isPrefixOf
   )
 
diff --git a/Lava/Verification.hs b/Lava/Verification.hs
--- a/Lava/Verification.hs
+++ b/Lava/Verification.hs
@@ -16,13 +16,13 @@
 import Lava.Error
 import Lava.LavaDir
 
-import List
+import Data.List
   ( intersperse
   , isPrefixOf
   , nub
   )
 
-import IO
+import System.IO
   ( openFile
   , IOMode(..)
   , hPutStr
diff --git a/Lava/Vhdl.hs b/Lava/Vhdl.hs
--- a/Lava/Vhdl.hs
+++ b/Lava/Vhdl.hs
@@ -12,12 +12,12 @@
 import Lava.Error
 import Lava.LavaDir
 
-import List
+import Data.List
   ( intersperse
   , nub
   )
 
-import IO
+import System.IO
   ( openFile
   , IOMode(..)
   , hPutStr
diff --git a/Lava/Vis.hs b/Lava/Vis.hs
--- a/Lava/Vis.hs
+++ b/Lava/Vis.hs
@@ -16,12 +16,12 @@
 import Lava.LavaDir
 import Lava.Verification
 
-import List
+import Data.List
   ( intersperse
   , nub
   )
 
-import IO
+import System.IO
   ( openFile
   , IOMode(..)
   , hPutStr
diff --git a/Lava/Zchaff.hs b/Lava/Zchaff.hs
--- a/Lava/Zchaff.hs
+++ b/Lava/Zchaff.hs
@@ -12,12 +12,12 @@
 import Lava.LavaDir
 import Lava.Verification
 
-import List
+import Data.List
   ( intersperse
   , nub
   )
 
-import IO
+import System.IO
   ( openFile
   , IOMode(..)
   , hPutStr
diff --git a/chalmers-lava2000.cabal b/chalmers-lava2000.cabal
--- a/chalmers-lava2000.cabal
+++ b/chalmers-lava2000.cabal
@@ -1,5 +1,5 @@
 name:                chalmers-lava2000
-version:             1.1.2
+version:             1.2.0
 synopsis:            Hardware description library
 description:         Hardware description library
 category:            Language, Hardware
@@ -8,10 +8,15 @@
 copyright:           (c) 2008. Koen Claessen <koen@chalmers.se>
 author:              Koen Claessen <koen@chalmers.se>
 maintainer:          Emil Axelsson <emax@chalmers.se>
-cabal-version:       >= 1.2
+homepage:            http://projects.haskell.org/chalmers-lava2000/
+cabal-version:       >= 1.6
 build-type:          Simple
 data-files:          README, INSTALL, Doc/tutorial.ps, Vhdl/lava.vhd, Scripts/satzoo.wrapper, Scripts/smv.wrapper
 
+source-repository head
+  type:     darcs
+  location: http://code.haskell.org/chalmers-lava2000/
+
 library
     exposed-modules:
                      Lava
@@ -57,7 +62,7 @@
     other-modules:
                      Paths_chalmers_lava2000
 
-    build-Depends:   base >= 3 && < 5, haskell98 >= 1 && < 2, process >= 1 && < 2
+    build-Depends:   array, base >= 3 && < 5, process >= 1 && < 2, random
 
     extensions:      Rank2Types, ExistentialQuantification
     ghc-options:     -fno-warn-overlapping-patterns -fno-warn-missing-methods
