diff --git a/Control/Monad/Exception.hs b/Control/Monad/Exception.hs
--- a/Control/Monad/Exception.hs
+++ b/Control/Monad/Exception.hs
@@ -9,7 +9,7 @@
 module Control.Monad.Exception (
     EM,  evalEM, runEM, runEMParanoid,
     EMT, evalEMT, runEMT, runEMTParanoid,
-    WithSrcLoc, withLocTH, showExceptionWithTrace,
+    WithSrcLoc(..), withLocTH, showExceptionWithTrace,
     MonadZeroException(..),
     module Control.Monad.Exception.Class ) where
 
@@ -108,6 +108,11 @@
                   Left (trace, WrapException e) -> case fromException e of
                                Nothing -> return (Left (trace,WrapException e))
                                Just e' -> unEMT (h trace e')
+
+-- | 'withLocTH' is a convenient TH macro which expands to 'withLoc' @\<source location\>@
+--   Usage:
+--
+--  > f x = $withLocTH $ do
 withLocTH :: Q Exp
 withLocTH = do
   loc <- qLocation
diff --git a/Control/Monad/Exception/Class.hs b/Control/Monad/Exception/Class.hs
--- a/Control/Monad/Exception/Class.hs
+++ b/Control/Monad/Exception/Class.hs
@@ -16,8 +16,8 @@
        ) where
 
 import Control.Monad
-import Control.Monad.Trans
 #if TRANSFORMERS
+import Control.Monad.Trans
 import Control.Monad.Trans.Error
 import Control.Monad.Trans.List
 import Control.Monad.Trans.Reader
diff --git a/control-monad-exception.cabal b/control-monad-exception.cabal
--- a/control-monad-exception.cabal
+++ b/control-monad-exception.cabal
@@ -1,5 +1,5 @@
 name: control-monad-exception
-version: 0.4.4
+version: 0.4.5
 Cabal-Version:  >= 1.2.3
 build-type: Simple
 license: PublicDomain
@@ -48,7 +48,7 @@
   >       g () `catchWithSrcLoc` \loc MyException ->
   >              lift $ putStrLn (showExceptionWithTrace loc MyException)
   .
-  > -- Running @main@ produces the output:
+  > -- Running main produces the output:
   .
   >       *Main> main
   >       MyException
