diff --git a/hmm-lapack.cabal b/hmm-lapack.cabal
--- a/hmm-lapack.cabal
+++ b/hmm-lapack.cabal
@@ -1,6 +1,6 @@
 Cabal-Version:       2.2
 Name:                hmm-lapack
-Version:             0.4.1
+Version:             0.5.0.1
 Synopsis:            Hidden Markov Models using LAPACK primitives
 Description:
   Hidden Markov Models implemented using LAPACK data types and operations.
@@ -41,7 +41,7 @@
   Changes.md
 
 Source-Repository this
-  Tag:         0.4.1
+  Tag:         0.5.0.1
   Type:        darcs
   Location:    https://hub.darcs.net/thielema/hmm-lapack
 
@@ -60,15 +60,15 @@
     Math.HiddenMarkovModel.Example.Circle
   Build-Depends:
     private,
-    lapack >=0.4 && <0.5,
+    lapack >=0.5 && <0.6,
     fixed-length >=0.2.1 && <0.3,
     tfp >=1.0 && <1.1,
     netlib-ffi >=0.1.1 && <0.2,
     comfort-array-shape >=0.0 && <0.1,
     comfort-array >=0.5 && <0.6,
-    explicit-exception >=0.1.7 && <0.2,
+    explicit-exception >=0.1.7 && <0.3,
     lazy-csv >=0.5 && <0.6,
-    transformers >= 0.2 && <0.6,
+    transformers >= 0.2 && <0.7,
     non-empty >=0.3.2 && <0.4,
     semigroups >=0.17 && <1.0,
     containers >=0.4.2 && <0.7,
diff --git a/private/Math/HiddenMarkovModel/Normalized.hs b/private/Math/HiddenMarkovModel/Normalized.hs
--- a/private/Math/HiddenMarkovModel/Normalized.hs
+++ b/private/Math/HiddenMarkovModel/Normalized.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
 {- |
 Counterparts to functions in "Math.HiddenMarkovModel.Private"
 that normalize interim results.
diff --git a/private/Math/HiddenMarkovModel/Private.hs b/private/Math/HiddenMarkovModel/Private.hs
--- a/private/Math/HiddenMarkovModel/Private.hs
+++ b/private/Math/HiddenMarkovModel/Private.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
 module Math.HiddenMarkovModel.Private where
 
 import qualified Math.HiddenMarkovModel.Public.Distribution as Distr
diff --git a/private/Math/HiddenMarkovModel/Public.hs b/private/Math/HiddenMarkovModel/Public.hs
--- a/private/Math/HiddenMarkovModel/Public.hs
+++ b/private/Math/HiddenMarkovModel/Public.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
 module Math.HiddenMarkovModel.Public (
    T(..),
    Discrete, DiscreteTrained,
diff --git a/private/Math/HiddenMarkovModel/Public/Distribution.hs b/private/Math/HiddenMarkovModel/Public/Distribution.hs
--- a/private/Math/HiddenMarkovModel/Public/Distribution.hs
+++ b/private/Math/HiddenMarkovModel/Public/Distribution.hs
@@ -117,7 +117,7 @@
 class Format typ where
    format ::
       (Shape.C sh, Output out, Class.Real prob) =>
-      String -> T typ sh prob -> out
+      Format.Config -> T typ sh prob -> out
 
 instance
    (Format typ, Shape.C sh, Class.Real prob) =>
@@ -200,7 +200,8 @@
       Output.formatAligned $
       map (\(sym,v) ->
             map (Identity . Output.text) $
-            (show sym ++ ":") : map (printFmt fmt) (Vector.toList v)) $
+            (show sym ++ ":") :
+               map (printFmt $ Format.configFormat fmt) (Vector.toList v)) $
       Array.toAssociations $ Matrix.toRowArray m
 
 -- cf. Data.Bifunctor.Flip
@@ -287,8 +288,10 @@
    format = runFormatGaussian $ Class.switchReal formatGaussian formatGaussian
 
 newtype FormatGaussian out emiSh stateSh a =
-   FormatGaussian
-      {runFormatGaussian :: String -> T (Gaussian emiSh) stateSh a -> out}
+   FormatGaussian {
+      runFormatGaussian ::
+         Format.Config -> T (Gaussian emiSh) stateSh a -> out
+   }
 
 formatGaussian ::
    (FormatArray emiSh, Shape.C stateSh,
diff --git a/src/Math/HiddenMarkovModel/Named.hs b/src/Math/HiddenMarkovModel/Named.hs
--- a/src/Math/HiddenMarkovModel/Named.hs
+++ b/src/Math/HiddenMarkovModel/Named.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
 module Math.HiddenMarkovModel.Named (
    T(..),
    Discrete,
diff --git a/src/Math/HiddenMarkovModel/Pattern.hs b/src/Math/HiddenMarkovModel/Pattern.hs
--- a/src/Math/HiddenMarkovModel/Pattern.hs
+++ b/src/Math/HiddenMarkovModel/Pattern.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
 {- |
 This module provides a simple way to train
 the transition matrix and initial probability vector
