2021-11-03 13:17:09 +02:00
|
|
|
{-# LANGUAGE DerivingVia #-}
|
|
|
|
module Trace where
|
|
|
|
|
|
|
|
import Data.Functor.Contravariant (Op(..), Contravariant)
|
|
|
|
import Data.Monoid (Ap(..))
|
|
|
|
|
2021-11-15 20:49:51 +02:00
|
|
|
newtype Trace m a = Trace { runTrace :: a -> m () }
|
2021-11-03 13:17:09 +02:00
|
|
|
deriving Contravariant via Op (m ())
|
|
|
|
deriving (Semigroup, Monoid) via Op (Ap m ()) a
|