diff --git a/call-stack.cabal b/call-stack.cabal
--- a/call-stack.cabal
+++ b/call-stack.cabal
@@ -1,11 +1,11 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.34.3.
+-- This file has been generated from package.yaml by hpack version 0.34.4.
 --
 -- see: https://github.com/sol/hpack
 
 name:           call-stack
-version:        0.3.0
+version:        0.4.0
 synopsis:       Use GHC call-stacks in a backward compatible way
 category:       Data
 homepage:       https://github.com/sol/call-stack#readme
@@ -25,6 +25,10 @@
   ghc-options: -Wall
   build-depends:
       base ==4.*
+  if os(windows)
+    cpp-options: -DWINDOWS
+    build-depends:
+        filepath
   exposed-modules:
       Data.CallStack
   other-modules:
@@ -41,6 +45,7 @@
   build-depends:
       base ==4.*
     , call-stack
+    , filepath
     , nanospec
   other-modules:
       Data.CallStackSpec
diff --git a/src/Data/CallStack.hs b/src/Data/CallStack.hs
--- a/src/Data/CallStack.hs
+++ b/src/Data/CallStack.hs
@@ -4,9 +4,9 @@
 
 #if __GLASGOW_HASKELL__ >= 704
 {-# LANGUAGE ConstraintKinds #-}
-#define HCS HasCallStack =>
+#define HasCallStack_ HasCallStack =>
 #else
-#define HCS
+#define HasCallStack_
 #endif
 
 module Data.CallStack (
@@ -22,6 +22,10 @@
 import Data.Maybe
 import Data.SrcLoc
 
+#ifdef WINDOWS
+import System.FilePath
+#endif
+
 #if MIN_VERSION_base(4,8,1)
 import qualified GHC.Stack as GHC
 #endif
@@ -37,14 +41,30 @@
 
 type CallStack = [(String, SrcLoc)]
 
-callStack :: HCS CallStack
+callStack :: HasCallStack_ CallStack
+callStack = workaroundForIssue19236 $
 #if MIN_VERSION_base(4,9,0)
-callStack = drop 1 $ GHC.getCallStack GHC.callStack
+  drop 1 $ GHC.getCallStack GHC.callStack
 #elif MIN_VERSION_base(4,8,1)
-callStack = drop 2 $ GHC.getCallStack ?callStack
+  drop 2 $ GHC.getCallStack ?callStack
 #else
-callStack = []
+  []
 #endif
 
-callSite :: HCS Maybe (String, SrcLoc)
+callSite :: HasCallStack_ Maybe (String, SrcLoc)
 callSite = listToMaybe (reverse callStack)
+
+workaroundForIssue19236 :: CallStack -> CallStack -- https://gitlab.haskell.org/ghc/ghc/-/issues/19236
+workaroundForIssue19236 =
+#ifdef WINDOWS
+  map (fmap fixSrcLoc)
+  where
+    fixSrcLoc :: SrcLoc -> SrcLoc
+    fixSrcLoc loc = loc { srcLocFile = fixPath $ srcLocFile loc }
+
+    fixPath :: FilePath -> FilePath
+    fixPath =
+      joinPath . splitDirectories
+#else
+  id
+#endif
diff --git a/test/Data/CallStackSpec.hs b/test/Data/CallStackSpec.hs
--- a/test/Data/CallStackSpec.hs
+++ b/test/Data/CallStackSpec.hs
@@ -15,10 +15,10 @@
           , SrcLoc {
               srcLocPackage = "main"
             , srcLocModule = "Example"
-            , srcLocFile = "test/Example.hs"
-            , srcLocStartLine = 17
+            , srcLocFile = "test" </> "Example.hs"
+            , srcLocStartLine = 18
             , srcLocStartCol = 7
-            , srcLocEndLine = 17
+            , srcLocEndLine = 18
             , srcLocEndCol = 10
             }
           )
@@ -26,10 +26,10 @@
           , SrcLoc {
               srcLocPackage = "main"
             , srcLocModule = "Example"
-            , srcLocFile = "test/Example.hs"
-            , srcLocStartLine = 14
+            , srcLocFile = "test" </> "Example.hs"
+            , srcLocStartLine = 15
             , srcLocStartCol = 8
-            , srcLocEndLine = 14
+            , srcLocEndLine = 15
             , srcLocEndCol = 11
             }
           )
diff --git a/test/Example.hs b/test/Example.hs
--- a/test/Example.hs
+++ b/test/Example.hs
@@ -2,10 +2,11 @@
 
 #if __GLASGOW_HASKELL__ >= 704
 {-# LANGUAGE ConstraintKinds #-}
-#define HCS HasCallStack =>
+#define HasCallStack_ HasCallStack =>
 #else
-#define HCS
+#define HasCallStack_
 #endif
+
 module Example where
 
 import           Data.CallStack
@@ -13,8 +14,8 @@
 test :: CallStack
 test = foo
 
-foo :: HCS CallStack
+foo :: HasCallStack_ CallStack
 foo = bar
 
-bar :: HCS CallStack
+bar :: HasCallStack_ CallStack
 bar = callStack
diff --git a/test/Util.hs b/test/Util.hs
--- a/test/Util.hs
+++ b/test/Util.hs
@@ -1,5 +1,7 @@
 {-# LANGUAGE CPP #-}
-module Util (SrcLoc(..), mapLocations) where
+module Util (SrcLoc(..), mapLocations, (</>)) where
+
+import           System.FilePath
 
 #if MIN_VERSION_base(4,8,1) && !MIN_VERSION_base(4,9,0)
 import qualified GHC.SrcLoc as GHC
