-- 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.4 -- | Minor utilities for the HPC tools. module Trace.Hpc.Util -- | HpcPos is an Hpc local rendition of a Span. data HpcPos -- | fromHpcPos explodes the HpcPos into line:column-line:colunm fromHpcPos :: HpcPos -> (Int, Int, Int, Int) -- | toHpcPos 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 Hash instance Eq HpcPos instance Ord HpcPos 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 -- | Mix 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 ()