diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -1,5 +1,5 @@
 name: simple-logger
-version: 0.0.1
+version: 0.0.2
 synopsis: A very simple but efficient logging framework
 maintainer: Alexander Thiemann <mail@athiemann.net>
 license: MIT
@@ -7,6 +7,7 @@
 extra-source-files:
   - README.md
   - package.yaml
+  - stack.yaml
 
 ghc-options: -Wall
 
diff --git a/simple-logger.cabal b/simple-logger.cabal
--- a/simple-logger.cabal
+++ b/simple-logger.cabal
@@ -3,7 +3,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           simple-logger
-version:        0.0.1
+version:        0.0.2
 synopsis:       A very simple but efficient logging framework
 homepage:       https://github.com/agrafix/simple-logger#readme
 bug-reports:    https://github.com/agrafix/simple-logger/issues
@@ -16,6 +16,7 @@
 extra-source-files:
     package.yaml
     README.md
+    stack.yaml
 
 source-repository head
   type: git
diff --git a/src/Control/Logger/Simple.hs b/src/Control/Logger/Simple.hs
--- a/src/Control/Logger/Simple.hs
+++ b/src/Control/Logger/Simple.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE ImplicitParams #-}
 {-# LANGUAGE OverloadedStrings #-}
 module Control.Logger.Simple
@@ -18,7 +19,10 @@
 import System.Log.FastLogger
 import qualified Data.Text as T
 import qualified Data.Traversable as T
+#if MIN_VERSION_base(4,9,0)
+#else
 import qualified GHC.SrcLoc as GHC
+#endif
 import qualified GHC.Stack as GHC
 
 data Loggers
@@ -47,38 +51,38 @@
 showText = T.pack . show
 
 logTrace :: (?callStack :: GHC.CallStack) => MonadIO m => T.Text -> m ()
-logTrace = doLog LogTrace
+logTrace = doLog LogTrace ?callStack
 
 logDebug :: (?callStack :: GHC.CallStack) => MonadIO m => T.Text -> m ()
-logDebug = doLog LogDebug
+logDebug = doLog LogDebug ?callStack
 
 logInfo :: (?callStack :: GHC.CallStack) => MonadIO m => T.Text -> m ()
-logInfo = doLog LogInfo
+logInfo = doLog LogInfo ?callStack
 
 logNote :: (?callStack :: GHC.CallStack) => MonadIO m => T.Text -> m ()
-logNote = doLog LogNote
+logNote = doLog LogNote ?callStack
 
 logWarn :: (?callStack :: GHC.CallStack) => MonadIO m => T.Text -> m ()
-logWarn = doLog LogWarn
+logWarn = doLog LogWarn ?callStack
 
 logError :: (?callStack :: GHC.CallStack) => MonadIO m => T.Text -> m ()
-logError = doLog LogError
+logError = doLog LogError ?callStack
 
--- | Log on error level and calls 'fail'
+-- | Log on error level and call 'fail'
 logFail :: (?callStack :: GHC.CallStack) => MonadIO m => T.Text -> m a
 logFail t =
-    do doLog LogError t
+    do doLog LogError ?callStack t
        fail (T.unpack t)
 
-doLog :: (?callStack :: GHC.CallStack) => MonadIO m => LogLevel -> T.Text -> m ()
-doLog ll txt =
+doLog :: MonadIO m => LogLevel -> GHC.CallStack -> T.Text -> m ()
+doLog ll cs txt =
     liftIO $
     readIORef logLevel >>= \logLim ->
     when (ll >= logLim) $
     do lgrs <- readIORef loggers
        time <- l_timeCache lgrs
        let loc =
-               case GHC.getCallStack ?callStack of
+               case GHC.getCallStack cs of
                    ((_, l):_) ->
                        GHC.srcLocFile l <> ":" <> show (GHC.srcLocStartLine l)
                    _ -> "unknown"
@@ -147,7 +151,9 @@
                             }
                     newFastLogger (LogFile spec defaultBufSize)
              stderrLogger <-
-                 if lc_stderr lc then Just <$> newFastLogger (LogStderr defaultBufSize) else pure Nothing
+                 if lc_stderr lc
+                 then Just <$> newFastLogger (LogStderr defaultBufSize)
+                 else pure Nothing
              tc <- newTimeCache timeFormat
              let lgrs = Loggers fileLogger stderrLogger tc
              writeIORef loggers lgrs
diff --git a/stack.yaml b/stack.yaml
new file mode 100644
--- /dev/null
+++ b/stack.yaml
@@ -0,0 +1,1 @@
+resolver: lts-7.5
