FeedMonad/FeedMonad/src/Trace.hs

10 lines
274 B
Haskell
Raw Normal View History

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