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