diff --git a/Data/Graph/ArraySCC.hs b/Data/Graph/ArraySCC.hs
--- a/Data/Graph/ArraySCC.hs
+++ b/Data/Graph/ArraySCC.hs
@@ -5,8 +5,9 @@
 module Data.Graph.ArraySCC(scc) where
 
 import Data.Graph(Graph,Vertex)
-import Data.Array.ST
+import Data.Array.ST(STUArray, newArray, readArray, writeArray)
 import Data.Array as A
+import Data.Array.Unsafe(unsafeFreeze)
 import Control.Monad.ST
 import Control.Monad(ap)
 
diff --git a/GraphSCC.cabal b/GraphSCC.cabal
--- a/GraphSCC.cabal
+++ b/GraphSCC.cabal
@@ -1,5 +1,5 @@
 Name:             GraphSCC
-Version:          1.0.2
+Version:          1.0.3
 License:          BSD3
 License-file:     LICENSE
 Author:           Iavor S. Diatchki
@@ -8,14 +8,14 @@
 Synopsis:         Tarjan's algorithm for computing the strongly connected components of a graph.
 Description:      Tarjan's algorithm for computing the strongly connected components of a graph.
 Build-type:       Simple
-Cabal-Version:    >= 1.2
+Cabal-Version:    >= 1.6
 
 flag use-maps
   default: False
   description: Use IntMap instead of mutable arrays.
 
 library
-  Build-Depends:    base, array, containers
+  Build-Depends:    base < 10, array, containers
   Exposed-modules:  Data.Graph.SCC
   Extensions:       CPP
   GHC-options:      -O2 -Wall
@@ -23,6 +23,10 @@
     Other-modules:  Data.Graph.MapSCC
     cpp-options: -DUSE_MAPS
   else
-    Extensions: Rank2Types
+    Extensions:     Rank2Types
     Other-modules:  Data.Graph.ArraySCC
+
+source-repository head
+  type:        git
+  location:    git://github.com/yav/GraphSCC.git
 
