{-# LANGUAGE FlexibleContexts #-}
module TextShow.Debug.Trace.Generic (
genericTraceTextShow
, genericTraceTextShowId
, genericTraceTextShowM
) where
import Generics.Deriving.Base (Generic, Rep)
import Prelude ()
import Prelude.Compat
import TextShow.Debug.Trace
import TextShow.Generic (GTextShowT, genericShowt)
genericTraceTextShow :: (Generic a, GTextShowT (Rep a ())) => a -> b -> b
genericTraceTextShow :: forall a b. (Generic a, GTextShowT (Rep a ())) => a -> b -> b
genericTraceTextShow = Text -> b -> b
forall a. Text -> a -> a
tracet (Text -> b -> b) -> (a -> Text) -> a -> b -> b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> Text
forall a. (Generic a, GTextShowT (Rep a ())) => a -> Text
genericShowt
genericTraceTextShowId :: (Generic a, GTextShowT (Rep a ())) => a -> a
genericTraceTextShowId :: forall a. (Generic a, GTextShowT (Rep a ())) => a -> a
genericTraceTextShowId a
a = Text -> a -> a
forall a. Text -> a -> a
tracet (a -> Text
forall a. (Generic a, GTextShowT (Rep a ())) => a -> Text
genericShowt a
a) a
a
genericTraceTextShowM :: (Generic a, GTextShowT (Rep a ()), Applicative f) => a -> f ()
genericTraceTextShowM :: forall a (f :: * -> *).
(Generic a, GTextShowT (Rep a ()), Applicative f) =>
a -> f ()
genericTraceTextShowM = Text -> f ()
forall (f :: * -> *). Applicative f => Text -> f ()
tracetM (Text -> f ()) -> (a -> Text) -> a -> f ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> Text
forall a. (Generic a, GTextShowT (Rep a ())) => a -> Text
genericShowt