{-# LANGUAGE DerivingVia #-} module Reddit.Publish where import Data.Functor.Contravariant import Data.Monoid (Ap(..)) newtype Publish m a = Publish { publish :: a -> m () } deriving Contravariant via (Op (m ())) deriving (Monoid, Semigroup) via (Op (Ap m ()) a)