diff --git a/examples/CleanPDB.hs b/examples/CleanPDB.hs
--- a/examples/CleanPDB.hs
+++ b/examples/CleanPDB.hs
@@ -7,7 +7,7 @@
 import qualified Data.ByteString.Char8 as BS
 import Data.List
 import Text.Printf
-import Data.Vector.V3
+import Linear.V3
 import Control.Monad.State(State, modify, get, runState)
 
 type CounterM a = State Int a
diff --git a/examples/ShiftToCenter.hs b/examples/ShiftToCenter.hs
--- a/examples/ShiftToCenter.hs
+++ b/examples/ShiftToCenter.hs
@@ -10,9 +10,9 @@
 import qualified Data.ByteString.Char8 as BS
 import Data.List
 import Text.Printf
-import Data.Vector.V3
+import Linear.V3
 
-center :: PDB.Structure -> Vector3
+center :: PDB.Structure -> V3 Double
 center s = avgv
   where
     sumv = itfoldl' addCoord 0 (s :: PDB.Structure)
@@ -26,7 +26,7 @@
 
 main = do [inpfname, outfname] <- getArgs
           Just structure <- PDB.parse inpfname
-          let c@(Vector3 x y z) = center structure
+          let c@(V3 x y z) = center structure
           printf "Center %.2f %.2f %.2f\n" x y z
           putStrLn $ show (PDB.numAtoms structure) ++ " atoms."
           let s1 = shift c structure
diff --git a/examples/Viewer.hs b/examples/Viewer.hs
--- a/examples/Viewer.hs
+++ b/examples/Viewer.hs
@@ -15,7 +15,7 @@
 import Bio.PDB.Iterable           as PDBI
 import Data.ByteString.Char8      as BS
 import Bio.PDB.Structure.Vector
-import Data.Vector.V3
+import Linear.V3
 
 data UIState = UIState { manipulationCenter :: Maybe GL.Position
                        , pressedButton      :: Maybe GL.MouseButton
@@ -105,18 +105,18 @@
 
 zaxis = GL.Vector3 0 0 1 :: GL.Vector3 GL.GLdouble
 
-negateVector3 :: (Num a) => GL.Vector3 a -> GL.Vector3 a
-negateVector3 = fmap negate
+negateV3 :: (Num a) => GL.Vector3 a -> GL.Vector3 a
+negateV3 = fmap negate
 
 handleKeys :: IORef UIState -> GL.Key -> GL.KeyState -> GL.Modifiers -> GL.Position -> IO ()
 handleKeys uiState (GL.Char 'q')                    GL.Down _modifiers _position = rotateViewMatrix    uiState   10.0  yaxis
 handleKeys uiState (GL.Char 'e')                    GL.Down _modifiers _position = rotateViewMatrix    uiState (-10.0) yaxis
 handleKeys uiState (GL.Char 'r')                    GL.Down _modifiers _position = rotateViewMatrix    uiState   10.0  xaxis
 handleKeys uiState (GL.Char 'f')                    GL.Down _modifiers _position = rotateViewMatrix    uiState (-10.0) xaxis
-handleKeys uiState (GL.Char 'a')                    GL.Down _modifiers _position = translateViewMatrix uiState                 xaxis
-handleKeys uiState (GL.Char 'd')                    GL.Down _modifiers _position = translateViewMatrix uiState $ negateVector3 xaxis
-handleKeys uiState (GL.Char 'w')                    GL.Down _modifiers _position = translateViewMatrix uiState                 zaxis
-handleKeys uiState (GL.Char 's')                    GL.Down _modifiers _position = translateViewMatrix uiState $ negateVector3 zaxis
+handleKeys uiState (GL.Char 'a')                    GL.Down _modifiers _position = translateViewMatrix uiState          xaxis
+handleKeys uiState (GL.Char 'd')                    GL.Down _modifiers _position = translateViewMatrix uiState $ negateV3 xaxis
+handleKeys uiState (GL.Char 'w')                    GL.Down _modifiers _position = translateViewMatrix uiState          zaxis
+handleKeys uiState (GL.Char 's')                    GL.Down _modifiers _position = translateViewMatrix uiState $ negateV3 zaxis
 handleKeys uiState (GL.MouseButton GL.RightButton)  GL.Down _modifiers  position = startMouseTracking uiState GL.RightButton  position 
 handleKeys uiState (GL.MouseButton GL.MiddleButton) GL.Down _modifiers  position = startMouseTracking uiState GL.MiddleButton position 
 handleKeys uiState (GL.MouseButton GL.LeftButton)   GL.Down _modifiers  position = startMouseTracking uiState GL.LeftButton position 
@@ -211,11 +211,11 @@
   GL.depthFunc                         $= Just GL.Less
    
 -- Assessing dimensions for initial focus
-center :: PDBS.Structure -> Vector3
+center :: PDBS.Structure -> V3 Double
 center structure = average 
   where
     (!average, _count) = PDBI.itfoldl' step (fromIntegral 0, 0) structure
-    step :: (Vector3, Double) -> PDBS.Atom -> (Vector3, Double)
+    step :: (V3 Double, Double) -> PDBS.Atom -> (V3 Double, Double)
     step (!r, !i) at = let i' = i + 1
                        in (coord at |* (1/i') + r |* (i/i'), i')
 
@@ -226,10 +226,10 @@
                                                              vzip max maxv c)) (cs, cs) structure
     !cs = center structure
 
-vector3ToGLVector3 :: Vector3 -> GL.Vector3 GL.GLdouble
+vector3ToGLVector3 :: V3 Double -> GL.Vector3 GL.GLdouble
 vector3ToGLVector3 v = GL.Vector3 x' y' z'
   where
-    Vector3 x y z = v
+    V3 x y z = v
     [x', y', z'] :: [GL.GLdouble]  = Prelude.map realToFrac [x, y, z]
 
 renderStructure :: IORef UIState -> PDBS.Structure -> IO ()
diff --git a/hPDB-examples.cabal b/hPDB-examples.cabal
--- a/hPDB-examples.cabal
+++ b/hPDB-examples.cabal
@@ -1,5 +1,5 @@
 name:                hPDB-examples
-version:             1.2.0.8
+version:             1.5.0.0
 synopsis:            Examples for hPDB library
 stability:           stable
 homepage:            https://github.com/BioHaskell/hPDB-examples
@@ -16,7 +16,7 @@
 
 build-type:          Simple
 cabal-version:       >=1.8
-tested-with:         GHC==7.4.2, GHC==7.6.3, GHC==7.8.4,GHC==7.10.3,GHC==8.0.1,GHC==8.2.2
+tested-with:         GHC==7.10.3,GHC==8.0.1,GHC==8.2.2
 --data-files:          1CRN.pdb, 1HTQ.pdb, 3JYV.pdb
 extra-source-files:  README.md INSTALL AUTHORS
 
@@ -27,42 +27,42 @@
 Executable PDB2Fasta
   main-is:          examples/PDB2Fasta.hs
   ghc-options:      -fspec-constr-count=4 -O3 -threaded -rtsopts -with-rtsopts=-N
-  build-depends:    base>=4.0, base <4.11, bytestring, ghc-prim, directory, mtl, template-haskell, vector, AC-Vector, containers, deepseq, QuickCheck >= 2.5.0.0, text>=0.11.1.13, hPDB >= 1.2, iterable >=3.0
+  build-depends:    base>=4.0, base <4.12, bytestring, ghc-prim, directory, mtl, template-haskell, vector, linear, containers, deepseq, QuickCheck >= 2.5.0.0, text>=0.11.1.13, hPDB >= 1.5, iterable >=3.0
   other-extensions:       ScopedTypeVariables OverloadedStrings BangPatterns NoMonomorphismRestriction EmptyDataDecls MagicHash
 
 Executable ShiftToCenter
   main-is:          examples/ShiftToCenter.hs
   ghc-options:      -fspec-constr-count=4 -O3  -threaded -rtsopts -with-rtsopts=-N
-  build-depends:    base>=4.0, base<4.11, ghc-prim, directory, mtl, template-haskell, vector, AC-Vector, containers, deepseq,QuickCheck >= 2.5.0.0, text>=0.11.1.13, hPDB >= 1.2, bytestring, iterable >=1.0
+  build-depends:    base>=4.0, base<4.12, ghc-prim, directory, mtl, template-haskell, vector, linear, containers, deepseq,QuickCheck >= 2.5.0.0, text>=0.11.1.13, hPDB >= 1.5, bytestring, iterable >=1.0
   other-extensions:       ScopedTypeVariables OverloadedStrings BangPatterns NoMonomorphismRestriction EmptyDataDecls MagicHash
 
 Executable CleanPDB
   main-is:          examples/CleanPDB.hs
   ghc-options:      -fspec-constr-count=4 -O3  -threaded -rtsopts -with-rtsopts=-N
-  build-depends:    base>=4.0, base <4.11, bytestring, ghc-prim, directory, mtl, template-haskell, vector, AC-Vector, containers, deepseq,QuickCheck >= 2.5.0.0, text>=0.11.1.13, hPDB >= 1.2, iterable >=1.0
+  build-depends:    base>=4.0, base <4.12, bytestring, ghc-prim, directory, mtl, template-haskell, vector, linear, containers, deepseq,QuickCheck >= 2.5.0.0, text>=0.11.1.13, hPDB >= 1.5, iterable >=1.0
   other-extensions:       ScopedTypeVariables OverloadedStrings BangPatterns NoMonomorphismRestriction EmptyDataDecls MagicHash
 
 Executable SplitModels
   main-is:          examples/SplitModels.hs
   ghc-options:      -fspec-constr-count=4 -O3  -threaded -rtsopts -with-rtsopts=-N
-  build-depends:    base>=4.0, base <4.11, ghc-prim, directory, mtl, template-haskell, vector, AC-Vector, containers, deepseq,QuickCheck >= 2.5.0.0, text>=0.11.1.13, hPDB >= 1.2, bytestring, iterable >=1.0
+  build-depends:    base>=4.0, base <4.12, ghc-prim, directory, mtl, template-haskell, vector, linear, containers, deepseq,QuickCheck >= 2.5.0.0, text>=0.11.1.13, hPDB >= 1.5, bytestring, iterable >=1.0
   other-extensions:       ScopedTypeVariables OverloadedStrings BangPatterns NoMonomorphismRestriction EmptyDataDecls MagicHash
 
 Executable CanonicalAxes
   main-is:          examples/CanonicalAxes.hs
   ghc-options:      -fspec-constr-count=4 -O3  -threaded -rtsopts -with-rtsopts=-N
-  Build-depends:    base>=4.0, base <4.11, bytestring, ghc-prim, directory, mtl, template-haskell, vector, AC-Vector, containers, deepseq,QuickCheck >= 2.5.0.0, text>=0.11.1.13, hPDB >= 1.2, iterable >=1.0
+  Build-depends:    base>=4.0, base <4.12, bytestring, ghc-prim, directory, mtl, template-haskell, vector, linear, containers, deepseq,QuickCheck >= 2.5.0.0, text>=0.11.1.13, hPDB >= 1.5, iterable >=1.0
   other-extensions:       ScopedTypeVariables OverloadedStrings BangPatterns NoMonomorphismRestriction EmptyDataDecls MagicHash
 
 Executable PrintEvents
   Main-is:           tests/PrintEvents.hs
   ghc-options:      -fspec-constr-count=4 -O3  -threaded -rtsopts -with-rtsopts=-N
-  Build-depends:    base>=4.0, base <4.11, bytestring, ghc-prim, directory, mtl, template-haskell, vector, AC-Vector, containers, deepseq, QuickCheck >= 2.5.0.0, text>=0.11.1.13, hPDB >= 1.2, iterable >=1.0
+  Build-depends:    base>=4.0, base <4.12, bytestring, ghc-prim, directory, mtl, template-haskell, vector, linear, containers, deepseq, QuickCheck >= 2.5.0.0, text>=0.11.1.13, hPDB >= 1.5, iterable >=1.0
   other-extensions:        ScopedTypeVariables OverloadedStrings BangPatterns NoMonomorphismRestriction EmptyDataDecls
 
 Executable PrintStructureObject
   ghc-options:      -fspec-constr-count=4 -O3  -threaded -rtsopts -with-rtsopts=-N
-  Build-depends:    base>=4.0, base <4.11, bytestring, ghc-prim, directory, mtl, template-haskell, vector, AC-Vector, containers, deepseq,QuickCheck >= 2.5.0.0, text>=0.11.1.13, hPDB >= 1.2, iterable >=1.0
+  Build-depends:    base>=4.0, base <4.12, bytestring, ghc-prim, directory, mtl, template-haskell, vector, linear, containers, deepseq,QuickCheck >= 2.5.0.0, text>=0.11.1.13, hPDB >= 1.5, iterable >=1.0
   Main-is:          tests/PrintStructureObject.hs
   other-extensions:        ScopedTypeVariables OverloadedStrings BangPatterns NoMonomorphismRestriction EmptyDataDecls
 
@@ -72,26 +72,26 @@
                     -fsimpl-tick-factor=150
   -- ^ To avoid difficulties with GHC 7.10.1:
   -- https://ghc.haskell.org/trac/ghc/ticket/10565
-  Build-depends:    base>=4.0, base <4.11, ghc-prim, bytestring, directory, mtl, template-haskell, vector, AC-Vector, containers, deepseq,QuickCheck >= 2.5.0.0, text>=0.11.1.13, hPDB >= 1.2, iterable >=1.0
+  Build-depends:    base>=4.0, base <4.12, ghc-prim, bytestring, directory, mtl, template-haskell, vector, linear, containers, deepseq,QuickCheck >= 2.5.0.0, text>=0.11.1.13, hPDB >= 1.5, iterable >=1.0
   other-extensions:        ScopedTypeVariables OverloadedStrings BangPatterns NoMonomorphismRestriction EmptyDataDecls
 
 Executable StericClashCheck
   main-is:           examples/StericClashCheck.hs
   ghc-options:      -fspec-constr-count=4 -O3  -threaded -rtsopts -with-rtsopts=-N
-  Build-Depends:     base>=4.0, base<4.11, bytestring, ghc-prim, directory, mtl, template-haskell, vector, AC-Vector, containers, deepseq, Octree >= 0.5, QuickCheck, text, text-format, hPDB >= 1.2, iterable >=1.0
+  Build-Depends:     base>=4.0, base<4.12, bytestring, ghc-prim, directory, mtl, template-haskell, vector, linear, containers, deepseq, Octree >= 0.5, QuickCheck, text, hPDB >= 1.5, iterable >=1.0
   other-extensions:        ScopedTypeVariables OverloadedStrings BangPatterns NoMonomorphismRestriction EmptyDataDecls
 
 -- if flag(haveOpenGL) -- why can't we make it conditionally available?
 Executable Viewer
   main-is:          examples/Viewer.hs
   ghc-options:      -fspec-constr-count=4 -O3  -threaded -rtsopts -with-rtsopts=-N
-  Build-depends:    base>=4.0, base <4.11, ghc-prim, directory, mtl, template-haskell, vector, AC-Vector, containers, deepseq,QuickCheck >= 2.5.0.0, text>=0.11.1.13, OpenGL, GLUT, hPDB >= 1.2, bytestring, iterable >=1.0
+  Build-depends:    base>=4.0, base <4.12, ghc-prim, directory, mtl, template-haskell, vector, linear, containers, deepseq,QuickCheck >= 2.5.0.0, text>=0.11.1.13, OpenGL, GLUT, hPDB >= 1.5, bytestring, iterable >=1.0
   other-extensions:       ScopedTypeVariables OverloadedStrings BangPatterns NoMonomorphismRestriction EmptyDataDecls MagicHash
 
 test-suite ParserPerformance
   main-is:          tests/TestParser.hs
   type:             exitcode-stdio-1.0
   ghc-options:      -fspec-constr-count=4 -O3  -threaded -rtsopts "-with-rtsopts=-N -t"
-  Build-depends:    base>=4.0, base <4.11, ghc-prim, directory, mtl, template-haskell, vector, AC-Vector, containers, deepseq, text>=0.11.1.13, hPDB >= 1.2, bytestring, iterable >=1.0, IfElse >= 0.80, process >= 1.0, time >= 1.2
+  Build-depends:    base>=4.0, base <4.12, ghc-prim, directory, mtl, template-haskell, vector, linear, containers, deepseq, text>=0.11.1.13, hPDB >= 1.5, bytestring, iterable >=1.0, IfElse >= 0.80, process >= 1.0, time >= 1.2
   other-extensions:       ScopedTypeVariables OverloadedStrings BangPatterns NoMonomorphismRestriction EmptyDataDecls MagicHash
 
