module Text.Show.Text.Debug.Trace.Generic (
genericTraceShow
, genericTraceShowId
, genericTraceShowM
) where
import GHC.Generics (Generic, Rep)
import Text.Show.Text.Debug.Trace
import Text.Show.Text.Generic (GShow, genericShow)
genericTraceShow :: (Generic a, GShow (Rep a)) => a -> b -> b
genericTraceShow = trace . genericShow
genericTraceShowId :: (Generic a, GShow (Rep a)) => a -> a
genericTraceShowId a = trace (genericShow a) a
genericTraceShowM :: (Generic a, GShow (Rep a), Monad m) => a -> m ()
genericTraceShowM = traceM . genericShow