diff --git a/hTensor.cabal b/hTensor.cabal
--- a/hTensor.cabal
+++ b/hTensor.cabal
@@ -1,5 +1,5 @@
 Name:               hTensor
-Version:            0.5.0
+Version:            0.6.0
 License:            GPL
 License-file:       LICENSE
 Author:             Alberto Ruiz
@@ -42,7 +42,7 @@
     else
       build-depends:    base < 3
 
-    Build-Depends:      haskell98, hmatrix >= 0.8.2, containers, random
+    Build-Depends:      hmatrix >= 0.9.3, containers, random
 
     hs-source-dirs:     lib
     Exposed-modules:    Numeric.LinearAlgebra.Array.Util
@@ -62,3 +62,4 @@
     ghc-options:        -Wall
                         -fno-warn-missing-signatures
                         -fno-warn-orphans
+
diff --git a/lib/Numeric/LinearAlgebra/Array/Display.hs b/lib/Numeric/LinearAlgebra/Array/Display.hs
--- a/lib/Numeric/LinearAlgebra/Array/Display.hs
+++ b/lib/Numeric/LinearAlgebra/Array/Display.hs
@@ -160,7 +160,7 @@
 ------------------------------------------------------
 
 -- | Insert a dummy index of dimension 1 at a given level (for formatting purposes).
-dummyAt :: Int -> NArray i t -> NArray i t
+dummyAt :: Coord t => Int -> NArray i t -> NArray i t
 dummyAt k t = mkNArray d' (coords t) where
     (d1,d2) = splitAt k (dims t)
     d' = d1 ++ d : d2
diff --git a/lib/Numeric/LinearAlgebra/Array/Internal.hs b/lib/Numeric/LinearAlgebra/Array/Internal.hs
--- a/lib/Numeric/LinearAlgebra/Array/Internal.hs
+++ b/lib/Numeric/LinearAlgebra/Array/Internal.hs
@@ -64,13 +64,14 @@
 import Numeric.LinearAlgebra((<>),Field)
 import Control.Applicative
 import Data.Function(on)
+import Foreign(Storable)
 -- import Control.Parallel.Strategies
 import Debug.Trace
 
 debug m f x = trace (m ++ show (f x)) x
 
 -- | Types that can be elements of the multidimensional arrays.
-class (Num (Vector t), Field t) => Coord t
+class (Num (Vector t), Field t, Storable t) => Coord t
 instance Coord Double
 instance Coord (Complex Double)
 
@@ -93,7 +94,7 @@
                     }
 
 -- | development function not intended for the end user
-mkNArray :: [Idx i] -> Vector a -> NArray i a
+mkNArray :: (Coord a) => [Idx i] -> Vector a -> NArray i a
 mkNArray [] _ = error "array with empty dimensions, use scalar"
 mkNArray dms vec = A dms v where
     ds = map iDim dms
@@ -384,7 +385,7 @@
 ------------------------------------------------------------------------
 
 -- | Create a 1st order array from a 'Vector'.
-fromVector :: Compat i => i -> Vector t -> NArray i t
+fromVector :: (Coord t, Compat i) => i -> Vector t -> NArray i t
 fromVector i v = mkNArray [Idx i (dim v) "1"] v
 
 -- | Create a 2nd order array from a 'Matrix'.
