diff --git a/Etage-Graph.cabal b/Etage-Graph.cabal
--- a/Etage-Graph.cabal
+++ b/Etage-Graph.cabal
@@ -1,5 +1,5 @@
 Name:                Etage-Graph
-Version:             0.1.4
+Version:             0.1.6
 Synopsis:            Data-flow based graph algorithms
 Description:         Data-flow based graph algorithms using the "Control.Etage" framework, showcasing its use for data-flow
                      computations. It is meant to be used with the "Data.Graph.Inductive" package which provides graph structures
@@ -13,7 +13,7 @@
 License-file:        LICENSE
 Author:              Mitar Milutinovic
 Maintainer:          mitar.haskell@tnode.com
-Copyright:           (c) 2011 Mitar Milutinovic
+Copyright:           (c) 2011-2012 Mitar Milutinovic
 Category:            Data Structures
 Build-type:          Simple
 Cabal-version:       >= 1.8
@@ -23,7 +23,7 @@
 Library
   Exposed-modules:     Data.Graph.Etage
   Build-depends:       base >= 4.3 && < 5,
-                       Etage >= 0.1.8 && < 0.2,
+                       Etage >= 0.1.10 && < 0.2,
                        fgl >= 5.4.2 && < 5.5,
                        mtl >= 2.0 && < 3,
                        containers >= 0.4 && < 1
@@ -48,7 +48,7 @@
                        array >= 0.3 && < 1,
                        time >= 1.1 && < 2,
                        parallel >= 3.1 && < 4,
-                       Etage == 0.1.8,
-                       Etage-Graph == 0.1.4
+                       Etage >= 0.1.10 && < 0.2,
+                       Etage-Graph == 0.1.6
 
   GHC-options:         -Wall -rtsopts -threaded
diff --git a/lib/Data/Graph/Etage.hs b/lib/Data/Graph/Etage.hs
--- a/lib/Data/Graph/Etage.hs
+++ b/lib/Data/Graph/Etage.hs
@@ -17,7 +17,7 @@
 import Data.Data
 import Data.Graph.Inductive hiding (inn, inn', out, out', node', nodes, run)
 import qualified Data.Map as M
-import Data.Map hiding (filter, map, empty, null, lookup)
+import Data.Map hiding (filter, map, empty, null, lookup, foldl)
 import Data.Tuple
 import System.IO
 
@@ -40,10 +40,10 @@
 While shortest paths search is lasting, information about suboptimal paths is already available. This algorithm also allows effective
 incremental search after graph topology changes (new nodes are added or removed, weights are changed) but this is not yet implemented.
 -}
-shortestPaths :: (DynGraph gr, Show a, Data a, Data b, Real b, Bounded b) => gr a b -> Incubation (M.Map Node (Nerve (GraphImpulse a b) AxonConductive (GraphImpulse a b) AxonConductive))
+shortestPaths :: (DynGraph gr, Show a, Show b, Data a, Data b, Real b, Bounded b) => gr a b -> Incubation (M.Map Node (Nerve (GraphImpulse a b) AxonConductive (GraphImpulse a b) AxonConductive))
 shortestPaths = ufoldM' growGraph M.empty
 
-growGraph :: forall a b. (Show a, Data a, Data b, Real b, Bounded b) => Context a b -> M.Map Node (Nerve (GraphImpulse a b) AxonConductive (GraphImpulse a b) AxonConductive) -> Incubation (M.Map Node (Nerve (GraphImpulse a b) AxonConductive (GraphImpulse a b) AxonConductive))
+growGraph :: forall a b. (Show a, Show b, Data a, Data b, Real b, Bounded b) => Context a b -> M.Map Node (Nerve (GraphImpulse a b) AxonConductive (GraphImpulse a b) AxonConductive) -> Incubation (M.Map Node (Nerve (GraphImpulse a b) AxonConductive (GraphImpulse a b) AxonConductive))
 growGraph (inn, node, label, out) nodes = do
   -- TODO: Sometimes nerve is not connected in both directions, how to fix memory leak then?
   liftIO $ do
