-- 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.1.1 -- | 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 catchIO :: IO a -> (IOException -> IO a) -> IO a instance [safe] Eq HpcPos instance [safe] Ord HpcPos instance [safe] Eq Hash instance [safe] HpcHash HpcPos instance [safe] (HpcHash a, HpcHash b) => HpcHash (a, b) instance [safe] HpcHash a => HpcHash [a] instance [safe] HpcHash Bool instance [safe] HpcHash Char instance [safe] HpcHash Integer instance [safe] HpcHash Int instance [safe] Num Hash instance [safe] Show Hash instance [safe] Read Hash instance [safe] Read HpcPos instance [safe] 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 [safe] Read TixModule instance [safe] Show TixModule instance [safe] Eq TixModule instance [safe] Read Tix instance [safe] Show Tix instance [safe] 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 ()