Open Icelandjack opened 6 years ago
instance Category cat => Semigroup (Join cat a) where Join f <> Join g = Join (f . g) instance Category cat => Monoid (Join cat a) where mempty = Join id mappend = (<>)
This allows deriving Monoid (Kleisli m a a) and
Monoid (Kleisli m a a)
newtype Endo a = Endo { appEndo :: Join (->) a } deriving (Semigroup, Monoid)
This allows deriving
Monoid (Kleisli m a a)
and