module TextShow.Trace.Hpc () where
import Data.Monoid.Compat
import TextShow (TextShow(..), FromStringShow(..), singleton)
import TextShow.Data.Time ()
import TextShow.TH (deriveTextShow)
import Trace.Hpc.Mix (Mix, BoxLabel, CondBox)
import Trace.Hpc.Tix (Tix, TixModule)
import Trace.Hpc.Util (HpcPos, Hash, fromHpcPos)
$(deriveTextShow ''Mix)
$(deriveTextShow ''BoxLabel)
$(deriveTextShow ''CondBox)
$(deriveTextShow ''Tix)
$(deriveTextShow ''TixModule)
instance TextShow HpcPos where
showb hp = case fromHpcPos hp of
(l1, c1, l2, c2) -> showb l1
<> (singleton ':' <> showb c1)
<> (singleton '-' <> showb l2)
<> (singleton ':' <> showb c2)
instance TextShow Hash where
showb = showb . FromStringShow