diff --git a/GraphRewriting/Layout/Force.hs b/GraphRewriting/Layout/Force.hs
--- a/GraphRewriting/Layout/Force.hs
+++ b/GraphRewriting/Layout/Force.hs
@@ -1,6 +1,7 @@
 module GraphRewriting.Layout.Force where
 
-import Data.Vector
+import Data.Vector.Class
+import Data.Vector.V2
 import GraphRewriting.Layout.Geometry
 
 
@@ -19,4 +20,4 @@
 attraction towards pos = force (towards - pos)
 
 force ∷ Vector2 → Force
-force f strength pos = pos + vnormalise f *| strength (vmag f)
+force f strength pos = pos + vnormalise f |* strength (vmag f)
diff --git a/GraphRewriting/Layout/Geometry.hs b/GraphRewriting/Layout/Geometry.hs
--- a/GraphRewriting/Layout/Geometry.hs
+++ b/GraphRewriting/Layout/Geometry.hs
@@ -1,6 +1,6 @@
 module GraphRewriting.Layout.Geometry where
 
-import Data.Vector
+import Data.Vector.V2
 
 
 focalPoint ∷ [Vector2] → Vector2
diff --git a/GraphRewriting/Layout/Gravitation.hs b/GraphRewriting/Layout/Gravitation.hs
--- a/GraphRewriting/Layout/Gravitation.hs
+++ b/GraphRewriting/Layout/Gravitation.hs
@@ -1,7 +1,8 @@
 module GraphRewriting.Layout.Gravitation where
 
 import Data.View
-import Data.Vector
+import Data.Vector.Class
+import Data.Vector.V2
 import Control.Monad
 import GraphRewriting.Graph.Types
 import GraphRewriting.Graph.Read
@@ -10,7 +11,7 @@
 
 
 centralGravitation ∷ View Position n ⇒ Node → WithGraph n Force
-centralGravitation = liftM (attraction $ fromScalar 0) . examineNode position
+centralGravitation = liftM (attraction $ vpromote 0) . examineNode position
 
 gravitation ∷ View Position n ⇒ Node -> Rewrite n Force
 gravitation node = do
diff --git a/GraphRewriting/Layout/Position.hs b/GraphRewriting/Layout/Position.hs
--- a/GraphRewriting/Layout/Position.hs
+++ b/GraphRewriting/Layout/Position.hs
@@ -1,10 +1,10 @@
 module GraphRewriting.Layout.Position
 	(module GraphRewriting.Layout.Position,
-	 module Data.Vector,
+	 module Data.Vector.V2,
 	 module Data.View)
 where
 
-import Data.Vector
+import Data.Vector.V2
 import Data.View
 
 
diff --git a/GraphRewriting/Layout/RotPortSpec.hs b/GraphRewriting/Layout/RotPortSpec.hs
--- a/GraphRewriting/Layout/RotPortSpec.hs
+++ b/GraphRewriting/Layout/RotPortSpec.hs
@@ -4,7 +4,7 @@
 	 module GraphRewriting.Layout.Rotation,
 	 module GraphRewriting.Layout.PortSpec,
 	 module GraphRewriting.Layout.Geometry,
-	 module Data.Vector,
+	 module Data.Vector.V2,
 	 module Data.View)
 where
 
@@ -15,7 +15,7 @@
 import GraphRewriting.Layout.Rotation
 import GraphRewriting.Layout.PortSpec
 import GraphRewriting.Layout.Geometry
-import Data.Vector
+import Data.Vector.V2
 import Data.View
 import Control.Monad
 
diff --git a/GraphRewriting/Layout/Rotation.hs b/GraphRewriting/Layout/Rotation.hs
--- a/GraphRewriting/Layout/Rotation.hs
+++ b/GraphRewriting/Layout/Rotation.hs
@@ -4,7 +4,8 @@
 where
 
 import Prelude.Unicode
-import Data.Vector
+import Data.Vector.Class
+import Data.Vector.V2
 import Data.View
 import GraphRewriting.Layout.Geometry
 
diff --git a/GraphRewriting/Layout/SpringEmbedder.hs b/GraphRewriting/Layout/SpringEmbedder.hs
--- a/GraphRewriting/Layout/SpringEmbedder.hs
+++ b/GraphRewriting/Layout/SpringEmbedder.hs
@@ -8,6 +8,7 @@
 import GraphRewriting.Layout.RotPortSpec
 import GraphRewriting.Layout.Force
 import Control.Monad
+import Data.Vector.Class
 
 
 springForce ∷ (View [Port] n, View Position n, View Rotation n, PortSpec n) ⇒ Double → Node → WithGraph n Force
@@ -21,4 +22,4 @@
 	
 	springTargets e node = do
 		ps ← liftM (propOfPort absRotPortSpec e) (readNode node)
-		return $ map (\(p,dir) → p + vnormalise dir *| springLength) ps
+		return $ map (\(p,dir) → p + vnormalise dir |* springLength) ps
diff --git a/GraphRewriting/Layout/Wrapper.hs b/GraphRewriting/Layout/Wrapper.hs
--- a/GraphRewriting/Layout/Wrapper.hs
+++ b/GraphRewriting/Layout/Wrapper.hs
@@ -6,7 +6,7 @@
 	 module GraphRewriting.Layout.PortSpec,
 	 module GraphRewriting.Layout.Rotation,
 	 module GraphRewriting.Layout.RotPortSpec,
-	 module Data.Vector)
+	 module Data.Vector.V2)
 where
 
 import Data.View
@@ -16,7 +16,8 @@
 import GraphRewriting.Layout.PortSpec
 import GraphRewriting.Layout.Rotation
 import GraphRewriting.Layout.RotPortSpec
-import Data.Vector
+import Data.Vector.Class
+import Data.Vector.V2
 
 
 -- | Wraps a value of type @w@, augmenting it with layout information
@@ -46,5 +47,5 @@
 wrapGraph ∷ Graph n → Graph (Wrapper n)
 wrapGraph = unsafeMapNodesUnique wrapNode where
 	wrapNode k n = Wrapper {wRot = Rotation 0, wPos = Position $ genPos k, wrappee = n}
-	genPos k = rotate (fromIntegral k) (fromScalar f)
+	genPos k = rotate (fromIntegral k) (vpromote f)
 		where f = fromIntegral $ k `mod` 3
diff --git a/graph-rewriting-layout.cabal b/graph-rewriting-layout.cabal
--- a/graph-rewriting-layout.cabal
+++ b/graph-rewriting-layout.cabal
@@ -1,5 +1,5 @@
 Name:           graph-rewriting-layout
-Version:        0.4.3
+Version:        0.4.4
 Copyright:      (c) 2010, Jan Rochel
 License:        BSD3
 License-File:   LICENSE
@@ -8,32 +8,32 @@
 Stability:      beta
 Build-Type:     Simple
 Synopsis:       Force-directed node placement intended for incremental graph drawing
-Description:
-	Defines basic methods for force-directed node displacement that can be combined into an incremental graph-drawing procedure.
+Description:    Defines basic methods for force-directed node displacement that can be combined into an incremental graph-drawing procedure.
 Category:       Graphs, Graphics
-Extensions:     UnicodeSyntax
 Cabal-Version:  >= 1.6
-Build-Depends:
-	base >= 4 && < 4.3,
-	base-unicode-symbols >= 0.2 && < 0.3,
-	graph-rewriting >= 0.4 && < 0.5,
-	AC-Vector >= 1.2 && < 1.3
-Exposed-Modules:
-	GraphRewriting.Layout.Position
-	GraphRewriting.Layout.PortSpec
-	GraphRewriting.Layout.Rotation
-	GraphRewriting.Layout.RotPortSpec
-	GraphRewriting.Layout.Coulomb
-	GraphRewriting.Layout.Gravitation
-	GraphRewriting.Layout.SpringEmbedder
-	GraphRewriting.Layout.Wrapper
-Other-Modules:
-	GraphRewriting.Layout.Force
-	GraphRewriting.Layout.Geometry
-Extensions:
-	UnicodeSyntax
-	FlexibleInstances
-	FlexibleContexts
-	MultiParamTypeClasses
-	TypeSynonymInstances
-GHC-Options:   -fno-warn-duplicate-exports -fwarn-unused-imports
+
+Library
+  Build-Depends:
+    base >= 4 && < 4.4,
+    base-unicode-symbols >= 0.2 && < 0.3,
+    graph-rewriting >= 0.4 && < 0.6,
+    AC-Vector >= 2.3 && < 2.4
+  Exposed-Modules:
+    GraphRewriting.Layout.Position
+    GraphRewriting.Layout.PortSpec
+    GraphRewriting.Layout.Rotation
+    GraphRewriting.Layout.RotPortSpec
+    GraphRewriting.Layout.Coulomb
+    GraphRewriting.Layout.Gravitation
+    GraphRewriting.Layout.SpringEmbedder
+    GraphRewriting.Layout.Wrapper
+  Other-Modules:
+    GraphRewriting.Layout.Force
+    GraphRewriting.Layout.Geometry
+  Extensions:
+    UnicodeSyntax
+    FlexibleInstances
+    FlexibleContexts
+    MultiParamTypeClasses
+    TypeSynonymInstances
+  GHC-Options:   -fno-warn-duplicate-exports -fwarn-unused-imports
