{-# LANGUAGE DeriveFunctor #-} module Prof where import Data.ByteString.Short (ShortByteString) data Prof a = Prof { pTree :: ProfTree a } deriving (Show, Functor) data ProfTree a = Leaf Entry | Node Entry a [ProfTree a] deriving (Show, Functor) data Entry = Entry { eCS :: ShortByteString , eModule :: ShortByteString , eSrc :: ShortByteString , eCount :: Int , eIndividual :: TimeShare , eInherited :: TimeShare } deriving (Show) data TimeShare = TimeShare { tsTime :: Double , tsAlloc :: Double } deriving (Show)