diff -ru orig/System/Log/FastLogger/Logger.hs new/System/Log/FastLogger/Logger.hs --- orig/System/Log/FastLogger/Logger.hs 2013-12-24 08:14:25.325658733 +0200 +++ new/System/Log/FastLogger/Logger.hs 2013-12-24 08:14:24.000000000 +0200 @@ -19,6 +19,15 @@ data Logger = Logger (MVar Buffer) !BufSize (IORef LogStr) +#if !MIN_VERSION_base(4, 6, 0) +atomicModifyIORef' :: IORef a -> (a -> (a,b)) -> IO b +atomicModifyIORef' ref f = do + b <- atomicModifyIORef ref + (\x -> let (a, b) = f x + in (a, a `seq` b)) + b `seq` return b +#endif + newLogger :: BufSize -> IO Logger newLogger size = do buf <- getBuffer size