diff --git a/heavy-logger.cabal b/heavy-logger.cabal
--- a/heavy-logger.cabal
+++ b/heavy-logger.cabal
@@ -1,5 +1,5 @@
 name:                heavy-logger
-version:             0.3.1.0
+version:             0.3.2.0
 synopsis:            Full-weight logging based on fast-logger
 description:         This is Haskell logging library, which prefers functionality and extendability
                      over light weight and simplicity. It can use fast-logger as backend, and is compatible 
@@ -46,7 +46,7 @@
                        fast-logger >= 2.4.10,
                        monad-logger >= 0.3.22,
                        hsyslog >= 5,
-                       text-format-heavy >= 0.1.5.0,
+                       text-format-heavy >= 0.1.5.1,
                        thread-local-storage >= 0.1.1,
                        stm >= 2.4
   hs-source-dirs:      src
diff --git a/src/System/Log/Heavy/Level.hs b/src/System/Log/Heavy/Level.hs
--- a/src/System/Log/Heavy/Level.hs
+++ b/src/System/Log/Heavy/Level.hs
@@ -30,28 +30,34 @@
   compare l1 l2 = compare (levelInt l1) (levelInt l2)
 
 -- | TRACE level is supposed to be used for development-stage debugging.
+-- Has integer value of 600.
 trace_level :: Level
 trace_level = Level "TRACE" 600 Syslog.Debug
 
 -- | DEBUG level is supposed to be used for debug logging that can be
 -- enabled on production.
+-- Has integer value of 500.
 debug_level :: Level
 debug_level = Level "DEBUG" 500 Syslog.Debug
 
 -- | INFO level: some event occured.
+-- Has integer value of 400.
 info_level :: Level
 info_level = Level "INFO" 400 Syslog.Info
 
 -- | WARN level: something went wrong, but for now it will not affect
 -- system's stability.
+-- Has integer value of 300.
 warn_level :: Level
 warn_level = Level "WARN" 300 Syslog.Warning
 
 -- | ERROR level: something went wrong.
+-- Has integer value of 200.
 error_level :: Level
 error_level = Level "ERROR" 200 Syslog.Error
 
 -- | FATAL level: something went terribly wrong, application is to be stopped.
+-- Has integer value of 100.
 fatal_level :: Level
 fatal_level = Level "FATAL" 100 Syslog.Emergency
 
diff --git a/src/System/Log/Heavy/Shortcuts.hs b/src/System/Log/Heavy/Shortcuts.hs
--- a/src/System/Log/Heavy/Shortcuts.hs
+++ b/src/System/Log/Heavy/Shortcuts.hs
@@ -18,38 +18,38 @@
 import System.Log.Heavy.Util
 
 -- | Message stub with Info severity.
-infoMessage :: F.VarContainer vars => TL.Text -> vars -> LogMessage
+infoMessage :: F.ClosedVarContainer vars => TL.Text -> vars -> LogMessage
 infoMessage fmt vars = LogMessage info_level [] undefined fmt vars []
 
 -- | Message stub with Debug severity.
-debugMessage :: F.VarContainer vars => TL.Text -> vars -> LogMessage
+debugMessage :: F.ClosedVarContainer vars => TL.Text -> vars -> LogMessage
 debugMessage fmt vars = LogMessage debug_level [] undefined fmt vars []
 
 -- | Message stub with Error severity.
-errorMessage :: F.VarContainer vars => TL.Text -> vars -> LogMessage
+errorMessage :: F.ClosedVarContainer vars => TL.Text -> vars -> LogMessage
 errorMessage fmt vars = LogMessage error_level [] undefined fmt vars []
 
 -- | Message stub with Warning severity.
-warnMessage :: F.VarContainer vars => TL.Text -> vars -> LogMessage
+warnMessage :: F.ClosedVarContainer vars => TL.Text -> vars -> LogMessage
 warnMessage fmt vars = LogMessage warn_level [] undefined fmt vars []
 
 -- | Log debug message.
 -- Note: this message will not contain source information.
-debug :: forall m vars. (F.VarContainer vars, MonadIO m, HasLogging m) => TL.Text -> vars -> m ()
+debug :: forall m vars. (F.ClosedVarContainer vars, MonadIO m, HasLogging m) => TL.Text -> vars -> m ()
 debug fmt vars = logMessage $ debugMessage fmt vars
 
 -- | Log info message.
 -- Note: this message will not contain source information.
-info :: forall m vars. (F.VarContainer vars, MonadIO m, HasLogging m) => TL.Text -> vars -> m ()
+info :: forall m vars. (F.ClosedVarContainer vars, MonadIO m, HasLogging m) => TL.Text -> vars -> m ()
 info fmt vars = logMessage $ infoMessage fmt vars
 
 -- | Log error message.
 -- Note: this message will not contain source information.
-reportError :: forall m vars. (F.VarContainer vars, MonadIO m, HasLogging m) => TL.Text -> vars -> m ()
+reportError :: forall m vars. (F.ClosedVarContainer vars, MonadIO m, HasLogging m) => TL.Text -> vars -> m ()
 reportError fmt vars = logMessage $ errorMessage fmt vars
 
 -- | Log warning message.
 -- Note: this message will not contain source information.
-warning :: forall m vars. (F.VarContainer vars, MonadIO m, HasLogging m) => TL.Text -> vars -> m ()
+warning :: forall m vars. (F.ClosedVarContainer vars, MonadIO m, HasLogging m) => TL.Text -> vars -> m ()
 warning fmt vars = logMessage $ warnMessage fmt vars
 
diff --git a/src/System/Log/Heavy/Types.hs b/src/System/Log/Heavy/Types.hs
--- a/src/System/Log/Heavy/Types.hs
+++ b/src/System/Log/Heavy/Types.hs
@@ -47,7 +47,7 @@
 -- * @System.Log.Heavy.TH@ module exports TH macros, which correctly fill message
 --   source and location.
 --
-data LogMessage = forall vars. F.VarContainer vars => LogMessage {
+data LogMessage = forall vars. F.ClosedVarContainer vars => LogMessage {
     lmLevel :: Level    -- ^ Log message level
   , lmSource :: LogSource  -- ^ Log message source (module)
   , lmLocation :: Loc      -- ^ Log message source (exact location). You usually
