diff --git a/Analyse/GraphRepr.hs b/Analyse/GraphRepr.hs
--- a/Analyse/GraphRepr.hs
+++ b/Analyse/GraphRepr.hs
@@ -1,6 +1,4 @@
-{-# LANGUAGE TypeFamilies
-            , FlexibleContexts
- #-}
+{-# LANGUAGE FlexibleContexts, TypeFamilies #-}
 
 {-
 Copyright (C) 2010 Ivan Lazar Miljenovic <Ivan.Miljenovic@gmail.com>
@@ -64,21 +62,21 @@
        , ModGraph
        ) where
 
-import Parsing.Types
-import Analyse.Utils
 import Analyse.Colors
+import Analyse.Utils
+import Parsing.Types
 
 import Data.Graph.Analysis
 import Data.Graph.Inductive
-import Data.GraphViz.Attributes(X11Color)
+import Data.GraphViz.Attributes (X11Color)
 
-import Data.List(isPrefixOf)
-import Data.Maybe(mapMaybe)
-import qualified Data.Map as M
-import Data.Map(Map)
-import qualified Data.Set as S
-import Data.Set(Set)
-import Control.Monad(liftM2)
+import           Control.Monad (liftM2)
+import           Data.List     (isPrefixOf)
+import           Data.Map      (Map)
+import qualified Data.Map      as M
+import           Data.Maybe    (mapMaybe)
+import           Data.Set      (Set)
+import qualified Data.Set      as S
 
 -- -----------------------------------------------------------------------------
 
@@ -87,6 +85,7 @@
                     , nodeCols    :: [(Set Node, X11Color)]
                     , edgeCols    :: [(Set Edge, X11Color)]
                     }
+                 deriving (Eq, Show, Read)
 
 mkGData       :: (Ord e) => (GraphData n e -> [(Set Node, X11Color)])
                  -> (GraphData n e -> [(Set Edge, X11Color)])
@@ -139,6 +138,7 @@
                   , collapsedHData :: HData
                   , collapsedVirts :: Set Entity
                   }
+              deriving (Eq, Show, Read)
 
 mkHData'       :: Set Entity -> HSData -> HData'
 mkHData' vs hs = HD' { origHData      = mkHData vs hs
diff --git a/CabalInfo.hs b/CabalInfo.hs
--- a/CabalInfo.hs
+++ b/CabalInfo.hs
@@ -29,29 +29,31 @@
  -}
 module CabalInfo(parseCabal) where
 
+import Distribution.Compiler                         (CompilerId)
+import Distribution.ModuleName                       (toFilePath)
 import Distribution.Package
-import Distribution.PackageDescription hiding (author)
-import Distribution.PackageDescription.Parse
+import Distribution.PackageDescription               hiding (author)
 import Distribution.PackageDescription.Configuration
-import Distribution.Compiler(CompilerId)
-import Distribution.ModuleName(toFilePath)
-import Distribution.Verbosity(silent)
-import Distribution.Simple.Compiler(compilerId)
-import Distribution.Simple.GHC(configure)
-import Distribution.Simple.Program(defaultProgramConfiguration)
-import Distribution.System(buildPlatform)
+import Distribution.PackageDescription.Parse
+import Distribution.Simple.Compiler                  (compilerId)
+import Distribution.Simple.GHC                       (configure)
+import Distribution.Simple.Program                   (defaultProgramConfiguration)
+import Distribution.System                           (buildPlatform)
+import Distribution.Verbosity                        (silent)
 
-import Data.List(nub)
-import Data.Maybe(isJust, fromJust)
-import Control.Exception(SomeException(..), try)
-import Control.Monad(liftM)
-import System.FilePath(dropExtension)
+import Control.Exception (SomeException (..), try)
+import Control.Monad     (liftM)
+import Data.List         (nub)
+import Data.Maybe        (fromJust, isJust)
+import System.FilePath   (dropExtension)
 
 -- -----------------------------------------------------------------------------
 
 ghcID :: IO CompilerId
-ghcID = liftM (compilerId . fst)
+ghcID = liftM (compilerId . getCompiler)
         $ configure silent Nothing Nothing defaultProgramConfiguration
+  where
+    getCompiler (comp,_mplat,_progconfig) = comp
 
 parseCabal    :: FilePath -> IO (Maybe (String, [FilePath]))
 parseCabal fp = do cID <- ghcID
diff --git a/Parsing/ParseModule.hs b/Parsing/ParseModule.hs
--- a/Parsing/ParseModule.hs
+++ b/Parsing/ParseModule.hs
@@ -31,22 +31,22 @@
  -}
 module Parsing.ParseModule(parseModule) where
 
-import Parsing.Types
 import Parsing.State
+import Parsing.Types
 
-import Language.Haskell.Exts.Syntax
 import Language.Haskell.Exts.Pretty
+import Language.Haskell.Exts.Syntax
 
-import Data.Char(isUpper)
-import Data.Foldable(foldrM)
-import Data.Maybe(fromMaybe, catMaybes, fromJust)
-import qualified Data.Map as M
-import qualified Data.Set as S
-import Data.Set(Set)
+import           Control.Arrow (second, (***))
+import           Control.Monad (liftM, liftM2)
+import           Data.Char     (isUpper)
+import           Data.Foldable (foldrM)
+import qualified Data.Map      as M
+import           Data.Maybe    (catMaybes, fromJust, fromMaybe)
+import           Data.MultiSet (MultiSet)
 import qualified Data.MultiSet as MS
-import Data.MultiSet(MultiSet)
-import Control.Arrow((***), second)
-import Control.Monad(liftM, liftM2)
+import           Data.Set      (Set)
+import qualified Data.Set      as S
 
 -- -----------------------------------------------------------------------------
 
@@ -511,7 +511,7 @@
 -- Data constructor + args
 getPat (PApp qn ps)        = liftM (second $ insQName qn) $ getPats ps
 -- Tuple
-getPat (PTuple ps)         = getPats ps
+getPat (PTuple _ ps)       = getPats ps
 -- Explicit list
 getPat (PList ps)          = getPats ps
 -- Parens around a Pat
@@ -612,8 +612,8 @@
                         return $ MS.unions (e':as')
 getExp (Do ss) = chainedCalled $ map getStmt ss
 getExp (MDo ss) = liftM (uncurry defElsewhere') $ getStmts ss
-getExp (Tuple es) = getExps es
-getExp (TupleSection mes) = getExps $ catMaybes mes
+getExp (Tuple _ es) = getExps es
+getExp (TupleSection _ mes) = getExps $ catMaybes mes
 getExp (List es) = getExps es
 getExp (Paren e) = getExp e
 getExp (LeftSection e o) = liftM (MS.union (maybeEnt o)) $ getExp e
diff --git a/SourceGraph.cabal b/SourceGraph.cabal
--- a/SourceGraph.cabal
+++ b/SourceGraph.cabal
@@ -1,5 +1,5 @@
 Name:                SourceGraph
-Version:             0.7.0.5
+Version:             0.7.0.6
 Synopsis:            Static code analysis using graph-theoretic techniques.
 Description: {
 Statically analyse Haskell source code using graph-theoretic
@@ -74,9 +74,9 @@
                         random,
                         directory,
                         mtl,
-                        fgl >= 5.4.2.3 && < 5.5,
-                        Graphalyze == 0.14.*,
-                        graphviz >= 2999.15.0.0 && < 2999.17,
-                        Cabal >= 1.8 && < 1.17,
-                        haskell-src-exts >= 1.5.0 && < 1.14.0
+                        fgl == 5.5.*,
+                        Graphalyze >= 0.14.1.0 && < 0.15,
+                        graphviz >= 2999.15.0.0 && < 2999.18,
+                        Cabal >= 1.18.0 && < 1.21,
+                        haskell-src-exts == 1.15.*
 }
