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


-- | Code Coverage Library for Haskell
--   
--   Code Coverage Library for Haskell
@package hpc
@version 0.5.0.6


-- | 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 line:column-line:colunm
fromHpcPos :: HpcPos -> (Int, Int, Int, Int)

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

-- | asks the question, is the first argument inside the second argument.
insideHpcPos :: HpcPos -> HpcPos -> Bool
class HpcHash a
toHash :: HpcHash a => a -> Hash
data Hash
instance Eq HpcPos
instance Ord HpcPos
instance Eq Hash
instance HpcHash HpcPos
instance (HpcHash a, HpcHash b) => HpcHash (a, b)
instance HpcHash a => HpcHash [a]
instance HpcHash Bool
instance HpcHash Char
instance HpcHash Integer
instance HpcHash Int
instance Num Hash
instance Show Hash
instance Read Hash
instance Read HpcPos
instance Show HpcPos


-- | Datatypes and file-access routines for the tick data file used by HPC.
--   (.tix)
module Trace.Hpc.Tix
data Tix
Tix :: [TixModule] -> Tix
data TixModule
TixModule :: String -> Hash -> Int -> [Integer] -> TixModule
tixModuleName :: TixModule -> String
tixModuleHash :: TixModule -> Hash
tixModuleTixs :: TixModule -> [Integer]
readTix :: String -> IO (Maybe Tix)
writeTix :: String -> Tix -> IO ()
getTixFileName :: String -> String
instance Read TixModule
instance Show TixModule
instance Eq TixModule
instance Read Tix
instance Show Tix
instance Eq Tix


-- | Datatypes and file-access routines for the per-module (.mix) 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 line:colunm values. * In GHC, this is 1 (a tab is just a
--   character) * With hpc-tracer, this is 8 (a tab represents several
--   spaces).
data Mix
Mix :: FilePath -> Integer -> 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

-- | Get modification time of a file.
getModificationTime :: FilePath -> IO Integer
createMixEntryDom :: Show a => [(HpcPos, a)] -> [MixEntryDom [a]]
type MixEntryDom a = Tree (HpcPos, a)
instance Read CondBox
instance Show CondBox
instance Eq CondBox
instance Ord CondBox
instance Read BoxLabel
instance Show BoxLabel
instance Eq BoxLabel
instance Ord BoxLabel
instance Show Mix
instance Read Mix
instance HpcHash CondBox
instance HpcHash BoxLabel

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