-- 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 http://www.haskell.org/haskellwiki/Haskell_program_coverage -- for more information. @package hpc @version 0.6.1.0 -- | 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:column fromHpcPos :: HpcPos -> (Int, Int, Int, Int) -- | toHpcPos implodes to HpcPos, from -- line:column-line:column 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 -- | Read a file strictly, as opposed to how readFile does it using -- lazy IO, but also disregard system locale and assume that the file is -- encoded in UTF-8. Haskell source files are expected to be encoded in -- UTF-8 by GHC. readFileUtf8 :: FilePath -> IO String -- | Write file in UTF-8 encoding. Parent directory will be created if -- missing. writeFileUtf8 :: FilePath -> String -> IO () instance GHC.Classes.Ord Trace.Hpc.Util.HpcPos instance GHC.Classes.Eq Trace.Hpc.Util.HpcPos instance GHC.Classes.Eq Trace.Hpc.Util.Hash 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 -- (.tix) used by Hpc. module Trace.Hpc.Tix -- | Tix 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 .tix File. readTix :: String -> IO (Maybe Tix) -- | Write a .tix File. writeTix :: String -> Tix -> IO () -- | getTixFullName takes a binary or .tix-file name, and -- normalizes it into a .tix-file name. getTixFileName :: String -> String instance GHC.Classes.Eq Trace.Hpc.Tix.TixModule instance GHC.Show.Show Trace.Hpc.Tix.TixModule instance GHC.Read.Read Trace.Hpc.Tix.TixModule instance GHC.Classes.Eq Trace.Hpc.Tix.Tix instance GHC.Show.Show Trace.Hpc.Tix.Tix instance GHC.Read.Read Trace.Hpc.Tix.Tix module Trace.Hpc.Reflect clearTix :: IO () examineTix :: IO Tix updateTix :: Tix -> IO () -- | 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:column -- values. -- -- 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.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 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.Eq Trace.Hpc.Mix.Mix instance GHC.Read.Read Trace.Hpc.Mix.Mix instance GHC.Show.Show Trace.Hpc.Mix.Mix instance Trace.Hpc.Util.HpcHash Trace.Hpc.Mix.BoxLabel instance Trace.Hpc.Util.HpcHash Trace.Hpc.Mix.CondBox