diff --git a/mwc-probability-transition.cabal b/mwc-probability-transition.cabal
--- a/mwc-probability-transition.cabal
+++ b/mwc-probability-transition.cabal
@@ -1,5 +1,5 @@
 name:                mwc-probability-transition
-version:             0.3.0.3
+version:             0.4
 synopsis:            A Markov stochastic transition operator with logging
 description:
             .
@@ -24,12 +24,16 @@
   hs-source-dirs:      src
   exposed-modules:     System.Random.MWC.Probability.Transition
   build-depends:       base >= 4.7 && < 5
+                     , exceptions
                      , ghc-prim
                      , logging-effect
                      , mtl
                      , mwc-probability
                      , primitive
                      , transformers
+                     -- * DEBUG
+                     , hspec
+                     , QuickCheck                    
 
 test-suite spec
   default-language:    Haskell2010
diff --git a/src/System/Random/MWC/Probability/Transition.hs b/src/System/Random/MWC/Probability/Transition.hs
--- a/src/System/Random/MWC/Probability/Transition.hs
+++ b/src/System/Random/MWC/Probability/Transition.hs
@@ -13,13 +13,25 @@
   , stepConditional
   -- * Helper functions
   , withSeverity
+  -- * Re-exported from @logging-effect@
+  -- ** Log message severity
+  , L.WithSeverity(..), L.Severity(..)
+  -- ** Handlers
+  , L.Handler, L.withFDHandler
+    -- ** Batched logging
+  , L.BatchingOptions(..), L.defaultBatchingOptions, L.withBatchedHandler
+  -- * Re-exported from @GHC.IO.Handle.FD@
+  , stdout, stderr
   ) where
 
 import Control.Monad
 import Control.Monad.Primitive
 
-import qualified Control.Monad.State as S
+-- import Control.Monad.Catch (MonadMask(..))
+import GHC.IO.Handle (Handle(..))
+import GHC.IO.Handle.FD (stdout, stderr)
 
+import qualified Control.Monad.State as S
 import Control.Monad.Trans.Class (MonadTrans(..), lift)
 import Control.Monad.Trans.State.Strict (StateT(..), runStateT)
 
@@ -48,15 +60,15 @@
 --
 -- 3. a logging message is constructed, using @z@ and @x'@ as arguments.
 mkTransition :: Monad m =>
-        (s -> Prob m t)     -- ^ Random generation
+        (s -> Prob m t)     -- ^ Generation of random data
      -> (s -> t -> (a, s))  -- ^ (Output, Next state)
-     -> (a -> s -> message) -- ^ Log message construction
+     -> (s -> t -> a -> message) -- ^ Log message construction using (Next state, current random data, Output)
      -> Transition message s m a
 mkTransition fm fs flog = Transition $ \gen -> do
   s <- S.get
   w <- lift . lift $ sample (fm s) gen
   let (a, s') = fs s w
-  lift $ L.logMessage $ flog a s' 
+  lift $ L.logMessage $ flog s' w a 
   S.put s'
   return a
 
diff --git a/test/LibSpec.hs b/test/LibSpec.hs
--- a/test/LibSpec.hs
+++ b/test/LibSpec.hs
@@ -29,6 +29,6 @@
 t01 = mkTransition modelf statef logf where
   modelf _ = pure (1 :: Double)
   statef s t = (t, s + 1)
-  logf _ s = WithSeverity Informational (show s)
+  logf s _ _ = WithSeverity Informational (show s)
 
 
