<div dir="auto"><div dir="auto">Ah, sorry. (:+:) is not an Applicative. It's still possible to make instance Monoid:<div dir="auto"><br></div><div dir="auto">instance Semigroup (f a) => Semigroup ((f :+: g) a) where</div><div dir="auto"><div dir="auto">    InL x <> InL y = InL (x <> y)</div><div dir="auto">    InL _ <> y = y</div><div dir="auto">    x <> _ = x</div><div dir="auto"><br></div><div dir="auto">instance Monoid (f a) => Monoid ((f :+: g) a) where</div><div dir="auto">    mempty = InL mempty</div></div></div></div>