diff --git a/Changelog.md b/Changelog.md
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,11 @@
+## 1.3.6 -- 2019-09-19
+
+### New
+
+* Added `MonadFail` instances.
+
+---
+
 ## 1.3.5 -- 2019-09-17
 
 ### Other Changes
diff --git a/logging-effect.cabal b/logging-effect.cabal
--- a/logging-effect.cabal
+++ b/logging-effect.cabal
@@ -1,5 +1,5 @@
 name: logging-effect
-version: 1.3.5
+version: 1.3.6
 synopsis: A mtl-style monad transformer for general purpose & compositional logging
 homepage: https://github.com/ocharles/logging-effect
 license: BSD3
diff --git a/src/Control/Monad/Log.hs b/src/Control/Monad/Log.hs
--- a/src/Control/Monad/Log.hs
+++ b/src/Control/Monad/Log.hs
@@ -94,6 +94,9 @@
 import Control.Monad.Writer.Class (MonadWriter(..))
 import Data.Semigroup ((<>))
 import Data.Time (UTCTime, getCurrentTime)
+#if MIN_VERSION_base(4,9,0)
+import qualified Control.Monad.Fail as Fail
+#endif
 #if !MIN_VERSION_base(4, 9, 0)
 import GHC.SrcLoc (SrcLoc, showSrcLoc)
 import GHC.Stack
@@ -365,7 +368,7 @@
 -- side-effect (such as writing to @stdout@, or appending a database table).
 newtype LoggingT message m a =
   LoggingT (ReaderT (Handler m message) m a)
-  deriving (Monad,Applicative,Functor,MonadFix,Alternative,MonadPlus,MonadIO,MonadWriter w,MonadCont,MonadError e,MonadMask,MonadCatch,MonadThrow,MonadState s)
+  deriving (Monad,Applicative,Functor,MonadFix,Alternative,MonadPlus,MonadIO,MonadWriter w,MonadCont,MonadError e,MonadMask,MonadCatch,MonadThrow,MonadState s, Fail.MonadFail)
 
 instance MonadBase b m => MonadBase b (LoggingT message m) where
   liftBase = lift . liftBase
@@ -554,7 +557,7 @@
 -- | A 'MonadLog' handler optimised for pure usage. Log messages are accumulated
 -- strictly, given that messasges form a 'Monoid'.
 newtype PureLoggingT log m a = MkPureLoggingT (StateT log m a)
-  deriving (Functor,Applicative,Monad,MonadFix,MonadCatch,MonadThrow,MonadIO,MonadMask,MonadReader r,MonadWriter w,MonadCont,MonadError e,Alternative,MonadPlus)
+  deriving (Functor,Applicative,Monad,MonadFix,MonadCatch,MonadThrow,MonadIO,MonadMask,MonadReader r,MonadWriter w,MonadCont,MonadError e,Alternative,MonadPlus,Fail.MonadFail)
 
 instance MonadBase b m => MonadBase b (PureLoggingT message m) where
   liftBase = lift . liftBase
@@ -620,7 +623,7 @@
 newtype DiscardLoggingT message m a =
   DiscardLoggingT {discardLogging :: m a -- ^ Run a 'MonadLog' computation by throwing away all log requests.
                   }
-  deriving (Functor,Applicative,Monad,MonadFix,MonadCatch,MonadThrow,MonadIO,MonadMask,MonadReader r,MonadWriter w,MonadCont,MonadError e,Alternative,MonadPlus,MonadState s,MonadRWS r w s,MonadBase b)
+  deriving (Functor,Applicative,Monad,MonadFix,MonadCatch,MonadThrow,MonadIO,MonadMask,MonadReader r,MonadWriter w,MonadCont,MonadError e,Alternative,MonadPlus,MonadState s,MonadRWS r w s,MonadBase b,Fail.MonadFail)
 
 instance MonadBaseControl b m => MonadBaseControl b (DiscardLoggingT message m) where
   type StM (DiscardLoggingT message m) a = StM m a
