{-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE UnicodeSyntax #-} module Control.Monad.Trace.Class ( MonadTrace(..) ) where import Data.Sequence -- | A class for monads that have a scoped tracing effect class MonadTrace t m | m → t where -- | Add a tag or breadcrumb to a scope traceScope ∷ t → m α → m α -- | Realize your own trace readTrace ∷ m (Seq t)