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


-- | Code Coverage Library for Haskell
--   
--   This package provides the code coverage library for Haskell.
--   
--   See <a>http://www.haskell.org/haskellwiki/Haskell_program_coverage</a>
--   for more information.
@package hpc
@version 0.6.0.3


-- | Minor utilities for the HPC tools.
module Trace.Hpc.Util

-- | <a>HpcPos</a> is an Hpc local rendition of a Span.
data HpcPos

-- | <a>fromHpcPos</a> explodes the HpcPos into
--   <i>line:column</i>-<i>line:column</i>
fromHpcPos :: HpcPos -> (Int, Int, Int, Int)

-- | <a>toHpcPos</a> implodes to HpcPos, from
--   <i>line:column</i>-<i>line:column</i>
toHpcPos :: (Int, Int, Int, Int) -> HpcPos

-- | Predicate determining whether the first argument is inside the second
--   argument.
insideHpcPos :: HpcPos -> HpcPos -> Bool
class HpcHash a
toHash :: HpcHash a => a -> Hash
data Hash
catchIO :: IO a -> (IOException -> IO a) -> IO a
instance GHC.Classes.Eq Trace.Hpc.Util.Hash
instance GHC.Classes.Ord Trace.Hpc.Util.HpcPos
instance GHC.Classes.Eq Trace.Hpc.Util.HpcPos
instance Trace.Hpc.Util.HpcHash GHC.Types.Int
instance Trace.Hpc.Util.HpcHash GHC.Integer.Type.Integer
instance Trace.Hpc.Util.HpcHash GHC.Types.Char
instance Trace.Hpc.Util.HpcHash GHC.Types.Bool
instance Trace.Hpc.Util.HpcHash a => Trace.Hpc.Util.HpcHash [a]
instance (Trace.Hpc.Util.HpcHash a, Trace.Hpc.Util.HpcHash b) => Trace.Hpc.Util.HpcHash (a, b)
instance Trace.Hpc.Util.HpcHash Trace.Hpc.Util.HpcPos
instance GHC.Read.Read Trace.Hpc.Util.Hash
instance GHC.Show.Show Trace.Hpc.Util.Hash
instance GHC.Num.Num Trace.Hpc.Util.Hash
instance GHC.Show.Show Trace.Hpc.Util.HpcPos
instance GHC.Read.Read Trace.Hpc.Util.HpcPos


-- | Datatypes and file-access routines for the tick data file
--   (<tt>.tix</tt>) used by Hpc.
module Trace.Hpc.Tix

-- | <a>Tix</a> is the storage format for our dynamic information about
--   what boxes are ticked.
data Tix
Tix :: [TixModule] -> Tix
data TixModule
TixModule :: String -> Hash -> Int -> [Integer] -> TixModule
tixModuleName :: TixModule -> String
tixModuleHash :: TixModule -> Hash
tixModuleTixs :: TixModule -> [Integer]

-- | Read a <tt>.tix</tt> File.
readTix :: String -> IO (Maybe Tix)

-- | Write a <tt>.tix</tt> File.
writeTix :: String -> Tix -> IO ()

-- | <tt>getTixFullName</tt> takes a binary or <tt>.tix</tt>-file name, and
--   normalizes it into a <tt>.tix</tt>-file name.
getTixFileName :: String -> String
instance GHC.Classes.Eq Trace.Hpc.Tix.Tix
instance GHC.Show.Show Trace.Hpc.Tix.Tix
instance GHC.Read.Read Trace.Hpc.Tix.Tix
instance GHC.Classes.Eq Trace.Hpc.Tix.TixModule
instance GHC.Show.Show Trace.Hpc.Tix.TixModule
instance GHC.Read.Read Trace.Hpc.Tix.TixModule

module Trace.Hpc.Reflect
clearTix :: IO ()
examineTix :: IO Tix
updateTix :: Tix -> IO ()


-- | Datatypes and file-access routines for the per-module (<tt>.mix</tt>)
--   indexes used by Hpc.
module Trace.Hpc.Mix

-- | <a>Mix</a> is the information about a modules static properties, like
--   location of Tix's in a file.
--   
--   Tab stops are the size of a tab in the provided <i>line:column</i>
--   values.
--   
--   <ul>
--   <li>In GHC, this is 1 (a tab is just a character)</li>
--   <li>With <tt>hpc-tracer</tt>, this is 8 (a tab represents several
--   spaces).</li>
--   </ul>
data Mix
Mix :: FilePath -> UTCTime -> Hash -> Int -> [MixEntry] -> Mix
type MixEntry = (HpcPos, BoxLabel)
data BoxLabel
ExpBox :: Bool -> BoxLabel
TopLevelBox :: [String] -> BoxLabel
LocalBox :: [String] -> BoxLabel
BinBox :: CondBox -> Bool -> BoxLabel
data CondBox
GuardBinBox :: CondBox
CondBinBox :: CondBox
QualBinBox :: CondBox

-- | Create is mix file.
mixCreate :: String -> String -> Mix -> IO ()

-- | Read a mix file.
readMix :: [String] -> Either String TixModule -> IO Mix
createMixEntryDom :: Show a => [(HpcPos, a)] -> [MixEntryDom [a]]
type MixEntryDom a = Tree (HpcPos, a)
instance GHC.Classes.Eq Trace.Hpc.Mix.Mix
instance GHC.Read.Read Trace.Hpc.Mix.Mix
instance GHC.Show.Show Trace.Hpc.Mix.Mix
instance GHC.Classes.Ord Trace.Hpc.Mix.BoxLabel
instance GHC.Classes.Eq Trace.Hpc.Mix.BoxLabel
instance GHC.Show.Show Trace.Hpc.Mix.BoxLabel
instance GHC.Read.Read Trace.Hpc.Mix.BoxLabel
instance GHC.Classes.Ord Trace.Hpc.Mix.CondBox
instance GHC.Classes.Eq Trace.Hpc.Mix.CondBox
instance GHC.Show.Show Trace.Hpc.Mix.CondBox
instance GHC.Read.Read Trace.Hpc.Mix.CondBox
instance Trace.Hpc.Util.HpcHash Trace.Hpc.Mix.BoxLabel
instance Trace.Hpc.Util.HpcHash Trace.Hpc.Mix.CondBox
