diff --git a/Data/Graph/ArraySCC.hs b/Data/Graph/ArraySCC.hs
--- a/Data/Graph/ArraySCC.hs
+++ b/Data/Graph/ArraySCC.hs
@@ -1,7 +1,7 @@
 -- | Implements Tarjan's algorithm for computing the strongly connected
 -- components of a graph.  For more details see:
 -- <http://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm>
-{-# LANGUAGE Rank2Types #-}
+{-# LANGUAGE Rank2Types, Trustworthy #-}
 module Data.Graph.ArraySCC(scc) where
 
 import Data.Graph(Graph,Vertex)
diff --git a/Data/Graph/MapSCC.hs b/Data/Graph/MapSCC.hs
--- a/Data/Graph/MapSCC.hs
+++ b/Data/Graph/MapSCC.hs
@@ -5,6 +5,7 @@
 -- This implementation uses 'IntMap' instead of mutable arrays in the algorithm.
 -- The benefit is that the implementation conforms to the Haskell 98 standard,
 -- however, the algorithm is a bit slower on large graphs.
+{-# LANGUAGE Safe #-}
 module Data.Graph.MapSCC(scc) where
 
 import Data.Graph(Graph,Vertex)
diff --git a/Data/Graph/SCC.hs b/Data/Graph/SCC.hs
--- a/Data/Graph/SCC.hs
+++ b/Data/Graph/SCC.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE CPP #-}
+{-# LANGUAGE CPP, Safe #-}
 module Data.Graph.SCC
   ( scc
   , sccList
diff --git a/GraphSCC.cabal b/GraphSCC.cabal
--- a/GraphSCC.cabal
+++ b/GraphSCC.cabal
@@ -1,5 +1,5 @@
 Name:             GraphSCC
-Version:          1.0.3
+Version:          1.0.4
 License:          BSD3
 License-file:     LICENSE
 Author:           Iavor S. Diatchki
