-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | A compatibility layer for GHC's 'wherefrom' function
--   
--   A compatibility layer for GHC's <a>wherefrom</a> function, which
--   exposes info provenance information. Each major version of this
--   library exports a different version of this interface.
@package wherefrom-compat
@version 0.1.1.0


-- | This module provides a stable interface to access GHC's info
--   provenance information. This is helpful for seeing metadata about heap
--   objects.
module GHC.InfoProv.Compat
data InfoProv
InfoProv :: String -> ClosureType -> String -> String -> String -> String -> String -> String -> InfoProv
[ipName] :: InfoProv -> String
[ipDesc] :: InfoProv -> ClosureType
[ipTyDesc] :: InfoProv -> String
[ipLabel] :: InfoProv -> String

[ipUnitId] :: InfoProv -> String
[ipMod] :: InfoProv -> String
[ipSrcFile] :: InfoProv -> String
[ipSrcSpan] :: InfoProv -> String

-- | Get information about where a value originated from. This information
--   is stored statically in a binary when <tt>-finfo-table-map</tt> is
--   enabled. The source positions will be greatly improved by also enabled
--   debug information with <tt>-g3</tt>. Finally you can enable
--   <tt>-fdistinct-constructor-tables</tt> to get more precise information
--   about data constructor allocations.
--   
--   The information is collect by looking at the info table address of a
--   specific closure and then consulting a specially generated map (by
--   <tt>-finfo-table-map</tt>) to find out where we think the best source
--   position to describe that info table arose from.
whereFrom :: a -> IO (Maybe InfoProv)
