10 lines
262 B
Haskell
10 lines
262 B
Haskell
{-# LANGUAGE DerivingVia #-}
|
|
module 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)
|