diff --git a/hmm-hmatrix.cabal b/hmm-hmatrix.cabal
--- a/hmm-hmatrix.cabal
+++ b/hmm-hmatrix.cabal
@@ -1,5 +1,5 @@
 Name:                hmm-hmatrix
-Version:             0.0.0.1
+Version:             0.0.1
 Synopsis:            Hidden Markov Models using HMatrix primitives
 Description:
   Hidden Markov Models implemented using HMatrix data types and operations.
@@ -39,7 +39,7 @@
 Cabal-Version:       >=1.10
 
 Source-Repository this
-  Tag:         0.0.0.1
+  Tag:         0.0.1
   Type:        darcs
   Location:    http://hub.darcs.net/thielema/hmm-hmatrix
 
@@ -63,7 +63,7 @@
     Math.HiddenMarkovModel.CSV
     Math.HiddenMarkovModel.Test
   Build-Depends:
-    hmatrix >=0.15 && <0.16,
+    hmatrix >=0.16 && <0.17,
     explicit-exception >=0.1.7 && <0.2,
     lazy-csv >=0.5 && <0.6,
     random >=1.0 && <1.1,
diff --git a/src/Math/HiddenMarkovModel/Distribution.hs b/src/Math/HiddenMarkovModel/Distribution.hs
--- a/src/Math/HiddenMarkovModel/Distribution.hs
+++ b/src/Math/HiddenMarkovModel/Distribution.hs
@@ -14,6 +14,7 @@
 import qualified Math.HiddenMarkovModel.CSV as HMMCSV
 import Math.HiddenMarkovModel.Utility (randomItemProp, normalizeProb)
 
+import qualified Numeric.LinearAlgebra.HMatrix as HMatrix
 import qualified Numeric.LinearAlgebra.Algorithms as Algo
 import qualified Numeric.Container as NC
 import qualified Data.Packed.Matrix as Matrix
@@ -172,7 +173,7 @@
                (NC.randomVector seed NC.Gaussian (Vector.dim center))
             <> covarianceChol
 
-instance (Algo.Field a) => EmissionProb (Gaussian a) where
+instance (HMatrix.Numeric a, Algo.Field a) => EmissionProb (Gaussian a) where
    emissionProb (Gaussian allParams) =
       let cholSolve m x =
              Matrix.flatten $ Algo.cholSolve m $ Matrix.asColumn x
@@ -181,7 +182,7 @@
              in  c * exp ((-1/2) * NC.dot x0 (cholSolve covarianceChol x0))
       in  \x -> Vector.fromList $ map (prob x) $ Array.elems allParams
 
-instance (Algo.Field a) => Estimate (GaussianTrained a) where
+instance (HMatrix.Numeric a, Algo.Field a) => Estimate (GaussianTrained a) where
    type Distribution (GaussianTrained a) = Gaussian a
    accumulateEmissions =
       let params xs =
diff --git a/src/Math/HiddenMarkovModel/Private.hs b/src/Math/HiddenMarkovModel/Private.hs
--- a/src/Math/HiddenMarkovModel/Private.hs
+++ b/src/Math/HiddenMarkovModel/Private.hs
@@ -215,7 +215,7 @@
 
 sumTransitions ::
    (NC.Container Vector e, Num e) =>
-   T distr t -> [Matrix e] -> Matrix e
+   T distr e -> [Matrix e] -> Matrix e
 sumTransitions hmm =
    List.foldl' NC.add (NC.konst 0 $ LinAlg.size $ transition hmm)
 
