diff --git a/call-stack.cabal b/call-stack.cabal
--- a/call-stack.cabal
+++ b/call-stack.cabal
@@ -1,9 +1,13 @@
--- This file has been generated from package.yaml by hpack version 0.15.0.
+cabal-version: 1.12
+
+-- This file has been generated from package.yaml by hpack version 0.31.0.
 --
 -- see: https://github.com/sol/hpack
+--
+-- hash: ead73de1f27ca13dbc12434ae8a06a86ce7c6fc59801f6807140632fc1e44df8
 
 name:           call-stack
-version:        0.1.0
+version:        0.2.0
 synopsis:       Use GHC call-stacks in a backward compatible way
 category:       Data
 homepage:       https://github.com/sol/call-stack#readme
@@ -12,7 +16,6 @@
 license:        MIT
 license-file:   LICENSE
 build-type:     Simple
-cabal-version:  >= 1.10
 
 source-repository head
   type: git
@@ -23,7 +26,7 @@
       src
   ghc-options: -Wall
   build-depends:
-      base >= 4.5.0.0 && < 5
+      base >=4.5.0.0 && <5
   exposed-modules:
       Data.CallStack
   other-modules:
@@ -38,11 +41,12 @@
       test
   ghc-options: -Wall
   build-depends:
-      base >= 4.5.0.0 && < 5
-    , nanospec
+      base >=4.5.0.0 && <5
     , call-stack
+    , nanospec
   other-modules:
       Data.CallStackSpec
       Example
       Util
+      Paths_call_stack
   default-language: Haskell2010
diff --git a/src/Data/CallStack.hs b/src/Data/CallStack.hs
--- a/src/Data/CallStack.hs
+++ b/src/Data/CallStack.hs
@@ -8,8 +8,10 @@
 , CallStack
 , SrcLoc(..)
 , callStack
+, callSite
 ) where
 
+import Data.Maybe
 import Data.SrcLoc
 
 #if MIN_VERSION_base(4,8,1)
@@ -35,3 +37,6 @@
 #else
 callStack = []
 #endif
+
+callSite :: HasCallStack => Maybe (String, SrcLoc)
+callSite = listToMaybe (reverse callStack)
