
import Polysemy.Trace
import Polysemy.Internal
import Polysemy.Internal.Union

-- | Trace calls to some effect, requires `Show` instance for the effect data type.
debugTraceEffect
    :: forall e r a
     . ( Members '[e, Trace] r
       , forall m x. Show (e m x)
       )
    => Sem r a
    -> Sem r a