diff --git a/GraphRewriting/Rule.hs b/GraphRewriting/Rule.hs
--- a/GraphRewriting/Rule.hs
+++ b/GraphRewriting/Rule.hs
@@ -23,7 +23,7 @@
 
 -- | Apply rule at an arbitrary position if applicable
 apply ∷ Rule n → Rewrite n ()
-apply = void . apply'
+apply = let void m = m >> return () in void . apply'
 
 -- | Apply rule at an arbitrary position. Return value states whether the rule was applicable.
 apply' ∷ Rule n → Rewrite n Bool
@@ -87,7 +87,7 @@
 byNode ∷ (View [Port] n, View v n) ⇒ v → Replace n ()
 byNode v = Replace $ do
 	n ← head <$> readNodeList
-	void $ copyNode n v
+	_ ← copyNode n v
 	return ((), [])
 
 byNewNode ∷ View [Port] n ⇒ n → Replace n ()
diff --git a/graph-rewriting.cabal b/graph-rewriting.cabal
--- a/graph-rewriting.cabal
+++ b/graph-rewriting.cabal
@@ -1,5 +1,5 @@
 Name:           graph-rewriting
-Version:        0.7.2
+Version:        0.7.3
 Copyright:      (c) 2010, Jan Rochel
 License:        BSD3
 License-File:   LICENSE
@@ -16,7 +16,7 @@
 
 Library
   Build-Depends:
-    base >= 4.3 && < 4.6,
+    base >= 4.0 && < 4.6,
     base-unicode-symbols >= 0.2 && < 0.3,
     mtl >= 1.1 && < 2.1,
     containers >= 0.3 && < 0.5
